2011-06-08 82 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> 
相關問題