c#
  • asp.net
  • listview
  • 2014-04-15 70 views 1 likes 
    1

    我試圖將事件中的EditItemTemplate綁定到的數據的值。 ListView ID是lvProducts,我如何在UpdateButton_Click方法中引用項目的數據?在單擊事件中獲取ListView綁定數據ASP.NET

    這是編輯項模板:

    <EditItemTemplate> 
             <tr> 
              <td class="narrow"><asp:Label runat="server" Text='<%#Bind("ProductID")%>' ID="idLabel"></asp:Label></td> 
              <td class="wide"><asp:Textbox runat="server" Text='<%#Bind("ProductTitle")%>' ID="nameEdit"></asp:Textbox><span style="color:red">*</span></td> 
              <td class="narrow"><asp:Textbox runat="server" Text='<%#Bind("StockAmount")%>' TextMode="Number" ID="Label4"></asp:Textbox></td> 
              <td class="narrow"><asp:Label runat="server" Text='<%#Bind("AvailableAmount")%>' ID="faxEdit"></asp:Label></td> 
              <td class="narrow"><asp:Checkbox runat="server" Checked='<%#Bind("ProductStatus")%>' Enabled="true" ID="Label6"></asp:Checkbox></td> 
              <td class="wide" style="text-align:center;"> <asp:LinkButton ID="UpdateButton" ToolTip='<%#Eval("ProductID")%>' OnClick="UpdateButton_Click" runat="server" CommandName="Update" Text="Save" />&nbsp; 
               <asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" /> 
              </td> 
             </tr> 
            </EditItemTemplate> 
    

    C#:

    protected void UpdateButton_Click(object sender, EventArgs e) 
        { 
    ??? 
        } 
    

    回答

    1

    我havnt測試,但它應該是這樣的:

     protected void UpdateButton_Click(object sender, EventArgs e) 
    { 
        if (e.CommandName == "Cancel") 
        { 
         ListViewDataItem lvd = (ListViewDataItem)((Control)e.CommandSource).NamingContainer; 
    
         //Same two lines for each value 
         Label ID = lvd.FindControl("idLabel") as Label; 
         string id = id.ToString(); 
        } 
    
    } 
    
    +0

    謝謝,只是一個評論:我改下聯:ListViewDataItem LVD = lvProducts.Items [I] – Yoav

    1

    設置CommandArgument爲您按鈕指向ProductId(假設這是您的主鍵)。

    <asp:LinkButton ID="UpdateButton" ToolTip='<%#Eval("ProductID")%>' OnClick="UpdateButton_Click" runat="server" CommandArgument='<%#Eval("ProductID")%>' CommandName="Update" Text="Save" /> 
    

    然後從事件中的按鈕獲取主鍵。並使用它來加載數據,進行更新並保存到數據庫。

    protected void UpdateButton_Click(object sender, EventArgs e) 
    { 
        LinkButton btn=sender as LinkButton; 
        string productid=btn.CommandArgument; 
        //now update your data 
    } 
    
    +0

    這其中也大,我可能會用這種方式了。謝謝 – Yoav

    相關問題