2011-06-08 85 views
3

我试图更新模式对话框的内容,此代码的工作对我来说:ASP.NET - 添加一个UpdatePanel触发一个LinkBut​​ton一个gridview里面

<asp:LinkButton ID="updateSomething" runat="server" Text="Update" CausesValidation="false" OnClientClick="openDialog();" onclick="UpdateButton_Click" /> 

<asp:UpdatePanel ID="upNewUpdatePanel" runat="server"> 
    <ContentTemplate> 
     <asp:Label ID="updateLabel" runat="server"></asp:Label> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="updateSomething" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

然而,当我尝试的地方一个GridView内LinkBut​​ton的,就像这样:

<asp:GridView ID="grdListUsers" runat="server" AutoGenerateColumns="false" AllowPaging="false" OnRowDataBound="grdRowDefListUsers" CssClass="mGrid" EmptyDataText="No users."> 
    <Columns> 
     <asp:BoundField DataField="Name" HeaderText="Nome" HeaderStyle-Width="300" /> 
     <asp:BoundField DataField="Login" HeaderText="Login" HeaderStyle-Width="300" /> 
     <asp:TemplateField HeaderText="Options" HeaderStyle-Width="75" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle"> 
      <ItemTemplate> 
       <asp:LinkButton ID="updateSomething" runat="server" Text="Update" CausesValidation="false" OnClientClick="openDialog();" onclick="UpdateButton_Click" /> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

这是不行的,我得到一个错误说:ID为“updateSomething”的控制不能在UpdatePanel的“upNewUpdatePanel”触发器被发现。

如何在gridview中使用ImageButton?

+0

http://stackoverflow.com/a/25959172/184572 – 2014-09-21 12:30:37

回答

7

尝试并添加asp:AsyncPostBackTriggerasp:GridViewOnRowCommand事件和处理的链接按钮,点击该事件

<asp:GridView ID="grdListUsers" runat="server" onRowCommand="grdListUsers_RowCommand"> 
    <asp:TemplateField> 
      <asp:LinkButton ID="updateSomething" CommandName="update-something" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'/> 
    </asp:TemplateField> 
</asp:GridView> 

,并在CS创建这样

protected void grdListUsers_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "update-something") 
    { 
     grdListUsers.SelectedIndex = Convert.ToInt32(e.CommandArgument); 
    } 
} 
+0

谢谢,它的工作! – aperez 2011-06-08 09:53:40

0

您可以将事件从UpdateButton_Click-Handler手动设置UpdatePanel的更新模式为Conditionalupdate

<asp:UpdatePanel ID="UdpFormPanel" runat="server" UpdateMode="conditional" ChildrenAsTriggers="false" > 

的LinkBut​​ton的Click事件处理器:

Protected Sub UpdateButton_Click(ByVal sender As Object, ByVal e As EventArgs) 
    'blah.... 
    upNewUpdatePanel.Update() 
End Sub 
2

周围添加你的链接按钮就像下面的另一个更新面板。

<asp:GridView ID="grdListUsers" runat="server" AutoGenerateColumns="false" AllowPaging="false" OnRowDataBound="grdRowDefListUsers" CssClass="mGrid" EmptyDataText="No users."> 
    <Columns> 
     <asp:BoundField DataField="Name" HeaderText="Nome" HeaderStyle-Width="300" /> 
     <asp:BoundField DataField="Login" HeaderText="Login" HeaderStyle-Width="300" /> 
     <asp:TemplateField HeaderText="Options" HeaderStyle-Width="75" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle"> 
      <ItemTemplate> 
       <asp:UpdatePanel ID="aa" runat="server"> 
        <ContentTemplate> 
         <asp:LinkButton ID="updateSomething" runat="server" Text="Update" CausesValidation="false" OnClientClick="openDialog();" onclick="UpdateButton_Click" /> 
        </ContentTemplate> 
        <Triggers> 
         <asp:PostBackTrigger ControlID="updateSomething"/> 
        </Triggers> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 
相关问题