列表视图中的文本框

时间:2011-02-20 11:53:16

标签: c# asp.net listview

我有一个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>

2 个答案:

答案 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属性设置为字符串:例如”保存“,”编辑“,”删除“。

然后在您的事件处理程序中,您可以检查这一点,以便了解“保存”,“编辑”或“删除”。