asp:listview コントロールにボタンまたは linkbutton を追加したいのですが、asp.net の listview コントロールに追加した rhat ボタンのクリック イベントのコードを作成したいのですが、asp.net 4.0 im でこれを行う方法を教えてください。 c# 4.0 でプログラムを使用します。何人かの仲間がこのタスクを実行するための簡単な解決策を持っていることを願っています.
ありがとうございました
asp:listview コントロールにボタンまたは linkbutton を追加したいのですが、asp.net の listview コントロールに追加した rhat ボタンのクリック イベントのコードを作成したいのですが、asp.net 4.0 im でこれを行う方法を教えてください。 c# 4.0 でプログラムを使用します。何人かの仲間がこのタスクを実行するための簡単な解決策を持っていることを願っています.
ありがとうございました
ASPX:
<asp:ListView runat="server">
<LayoutTemplate>
<table>
<thead>
<tr>
<th>ID</th>
<th>Foo</th>
<th>Bar</th>
<th> </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*/
}
}
次に例を示します。
マークアップ:
<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);
}
}