在更新面板中放置链接按钮而不触发链接按钮的单击事件

时间:2014-04-24 05:19:18

标签: c# asp.net updatepanel asplinkbutton

        <asp:ScriptManager ID="ScriptManager1" runat="server">                                  
    </asp:ScriptManager<asp:UpdatePanel ID="UpdatePanel1"runat="server">
    <ContentTemplate>
    <asp:Timer runat="server" ID="Timer2"   Interval="60" ontick="Timer1_Tick"/>
    <asp:DataList ID="DataList1" runat="server" RepeatColumns="1" onitemcommand="DataList1_ItemCommand">
    <ItemTemplate>
    <b>Test Name:</b> <%# DataBinder.Eval(Container.DataItem, "Name")%> <br />
    <b>Test Phone:</b> <%# DataBinder.Eval(Container.DataItem, "Phone")%> <br />
    <asp:LinkButton ID="btnView" runat="server" Text="View" CommandName="ShowDetails" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Name")%>' OnCommand="btnView_Command"></asp:LinkButton>
    </ItemTemplate>
    </asp:DataList>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer1"     EventName="Tick" />
    </Triggers>
    </asp:UpdatePanel>
    <asp:Panel ID="panel2" runat="server" Visible="false"></asp:Panel>
Code Behind :


    protected void dlBundleRequests_ItemCommand(object source, DataListCommandEventArgs e)
    {
        panel1.Visible = false;
        panel2.Visible = true;

        if (e.CommandName == "ShowDetails")// null)
        {
            Session["Name"] = e.CommandArgument.ToString();
            //Show Panel2
        }
    }
    protected void Timer1_Tick(object sender, EventArgs e)
    {
         //Binding DataList1
    }
    protected void btnView_Command(Object sender, CommandEventArgs e)
    {
      //set visibility true for Panel2
     }

添加updatepanel&amp; amp;定时器控制是每隔5分钟自动刷新datalist1。请帮我解决这个问题。添加这两个控件后,链接按钮停止工作。

2 个答案:

答案 0 :(得分:0)

试试这个..

<Triggers>
     <asp:AsyncPostBackTrigger ControlID="btnView"/>  
</Triggers>

答案 1 :(得分:0)

你必须在linkbutton标签中设置CommandArgument和CommandName,然后使用Command event not click

    <ItemTemplate>
            <b>Test Name:</b> <%# DataBinder.Eval(Container.DataItem, "Name")%> <br />
            <b>Test Phone:</b> <%# DataBinder.Eval(Container.DataItem, "Phone")%> <br />
                <asp:LinkButton ID="btnView" runat="server" Text="View" OnCommand="btnView_Click" CommandName="ShowDetails" CommandArgument='%# DataBinder.Eval(Container.DataItem, "Phone")%' ></asp:LinkButton>
</ItemTemplate>

然后在codebehind中处理该参数.. CommandArgument in MSDN