我有一个listview,其中包含一个文本框和一个保存按钮。 当我按下保存按钮时,会触发一个事件。如何从后面的代码中的文本框中获取文本,以便将其保存在数据库中? 我必须在按钮的CommandArgument中添加Text,但我不知道如何。
<asp:ListView ID="ListView2" runat="server">
<LayoutTemplate>
<ul>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
</ul>
</LayoutTemplate>
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:LinkButton ID="LinkButton2" runat="server" CommandArgument='<%#TextBox1.Text????????? %>'>save</asp:LinkButton>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:3)
以下是获取文本框所需的内容以及按钮单击时的值:
1: <asp:ListView ID="ListView1" runat="server" onitemcommand="ListView1_ItemCommand">
2: <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Save">Save</asp:LinkButton>
3:
protected void ListView1_ItemCommand(object sender, ListViewCommandEventArgs e)
{
if (e.CommandName == "Save")
{
TextBox tb = (TextBox)e.Item.FindControl("TextBox1");
string x = tb.Text;
}
}
但只是想知道你为什么要在itemtemplate中使用文本框?那是你的所有列表视图还是只是针对这个问题?
答案 1 :(得分:0)
您需要覆盖ItemCommand处理程序。见这里:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemcommand.aspx
检查ListViewCommandEvent - 它将为您提供所需的信息......
另外,在您的标记中,将按钮的“CommandArgument
属性设置为字符串:例如”保存“,”编辑“,”删除“。
然后在您的事件处理程序中,您可以检查这一点,以便了解“保存”,“编辑”或“删除”。