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

Button の 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 に答える