2
<asp:Repeater ID="rpChat" runat="server" OnItemDataBound="rpChat_ItemDataBound" OnItemCommand="rpChat_ItemCommand">
    <ItemTemplate>
        <div id="divChatWindow" title='<%# Eval("Username2") %>' runat="server" class="clChatWindow">
            <div>
            <img src="../../Menu/close.jpg" onclick="HideDiv(this)" style="float: right; width: 20px;
                    height: 20px;" /></div>
            <span class="chatText">
            </span>
            <asp:TextBox ID="txtChatMessage" runat="server" Width="115px"></asp:TextBox>
            <asp:LinkButton ID="btnSendChat" runat="server" CommandName="Insert"
                CommandArgument='<%# Eval("Username2") %>'>Send</asp:LinkButton>
        </div>
    </ItemTemplate>
</asp:Repeater>

当我在后面的代码中单击 LinkBut​​ton btnSendChat 时,如何获取 txtChatMessage 文本

4

2 回答 2

1

您不需要迭代整个 Items 集合,只需执行以下操作:

ASPX

<asp:Button Text="text" CommandName="myCommand" runat="server" ID="txtFirstName" />

背后的代码

protected void r_ItemCommand(object sender, RepeaterCommandEventArgs e)
{
    switch (e.CommandName)
    {
        case "myCommand":
            var txt = e.Item.FindControl("txtFirstName") as TextBox;
            var myValue = txt.Text;
            // place your awesome code here
            break;
    }
}
于 2012-07-22T16:21:12.437 回答
1

在按钮的 rpChat_ItemCommandevent 中,您可以获得 textBox 值

protected void rpChat_ItemCommand(Object Sender, RepeaterCommandEventArgs e)
{
   if(e.CommandName == "Insert")
   {
    TextBox txtChatMessage= (TextBox)e.item.FindControl("txtChatMessage");
    if (txtChatMessage!= null)
    {
        string val = txtChatMessage.Text;
    }
   }
}
于 2012-07-22T16:09:20.870 回答