2013-07-16 15 views
2

我想在asp:listview控件中添加一個按鈕或linkbutton,並且還希望在asp中的listview控件中添加的rhat按鈕的單擊事件代碼.net請讓我知道我怎樣才能做到這一點在asp.net 4.0即時通訊使用C#4.0中的程序。我希望有些朋友有一個簡單的解決方案來完成這項任務。Asp.net如何在列表視圖中添加一個linkbutton並做一些progrimmg

謝謝

+1

不幸的是,WebForms使得這個過程非常困難。按鈕的實際單擊事件不可用,您需要使用ListView的'ItemCommand'事件並檢查哪個按鈕發送命令。谷歌搜索'asp.net linkbutton listview'找到了很多 – David

+1

請問谷歌,然後再問一個問題在SO?有數百個例子在谷歌,如果不是數千。http://weblogs.asp.net/jeffwids /archive/2009/12/08/handle-the-button-click-event-from-an-asp-net-listview-control.aspx – Win

回答

6

ASPX:

<asp:ListView runat="server"> 
     <LayoutTemplate> 
      <table> 
       <thead> 
        <tr> 
         <th>ID</th> 
         <th>Foo</th> 
         <th>Bar</th> 
         <th>&nbsp;</th> 
        </tr> 
       </thead> 
       <tbody> 
        <asp:PlaceHolder ID="itemPlaceHolder" runat="server" /> 
       </tbody> 
      </table> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><%# Eval("ID") %></td> 
       <td><%# Eval("Foo") %></td> 
       <td><%# Eval("Bar") %></td> 
       <td><asp:LinkButton Text="Some Text" ID="lkbUniqueAction" OnClick="lkbUniqueAction_Click" runat="server" /></td> 
       <td><asp:LinkButton Text="Some Other Text" ID="lkbCommandAction" CommandArgument='<%# Eval("ID") %>' OnCommand="lkbCommandAction_Command" runat="server" /></td> 
      </tr> 
     </ItemTemplate> 
    </asp:ListView> 

C#

 protected void lkbUniqueAction_Click(object sender, EventArgs e) 
     { 
      /*TODO*/ 
     } 

     protected void lkbCommandAction_Command(object sender, CommandEventArgs e) 
     { 
      if (e.CommandArgument == null) 
      { 
       /*TODO*/ 
      } 
      else 
      { 
       /*TODO*/ 
      } 
     } 
+0

很高興幫助@Vikram –

+1

只想說thanx –

1

下面是一個例子:

標記:

<asp:GridView ID="gridMembersList" AutoGenerateColumns="False" GridLines="None" 
     runat="server" onrowcommand="gridMembersList_RowCommand"> 
    <Columns> 
     <asp:TemplateField HeaderText="User Name"> 
      <ItemTemplate> 
       <asp:Literal ID="ltrlName" runat="server" Text='<%# Eval("Name") %>'> </asp:Literal> 
       <asp:Literal ID="ltrlSlno" runat="server" Visible="False" Text='<%# Eval("Id") %>'></asp:Literal> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="View More"> 
      <ItemTemplate> 
        <asp:Button ID="btnViewmore" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CommandName="More" runat="server" Text="View More" /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 
</asp:GridView> 

代碼隱藏:

protected void gridMembersList_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "More") 
    { 
     int index = Convert.ToInt32(e.CommandArgument.ToString()); 
     Literal ltrlslno = (Literal)gridMembersList.Rows[index].FindControl("ltrlSlno"); 
     Literal ltrlName = (Literal)gridMembersList.Rows[index].FindControl("ltrlName"); 
     ScriptManager.RegisterStartupScript(this, this.GetType(), 
     "Message", "alert('" + ltrlName.Text+ "');", true); 
    } 
} 
+1

謝謝兄弟,我浪費了很多時候檢查(使用Response.write())如果參數發送沒有成功。準備好之後回答。你的帖子讓我記得我們可以使用javascript來檢查它。在我的代碼中一切正常,但Response.write是發送給我一個空的字符串。使用這個JavaScript代碼後,但與ListView和@馬克斯Fantone的答案,我的生活改變!!!!我upvoted你只是這個JavaScript代碼! – Tchaps

相關問題