1

パラメータをonclick関数に送信しようとしています。私のコードを見てください、そこに foreach があります。これは、<li>関連するデータベースを作成するためのものです。このアイテムはデータベースから来ています。オンクリックの削除ボタンでもう一度使用したいです。<li>ボタンのアンカーから取得する必要があります。または、私が知らないforeachからのものかもしれません。問題: その文字列 (アイテム) を onclick 関数に送信する方法がわかりません。

<div id="depListId" class="panel"> <ul id="depUl" class="list-group" runat="server"> <% foreach (var Item in dep) { %> <li class="list-group-item"><a><%= Item %></a><asp:Button runat="server" class="deleteButton" CommandArgument='<%# Eval(??HERE??)%>' OnCommand="delete_button" Text="Delete" /></li> <% } %> </ul> </div>

4

2 に答える 2

1

これにはリピーター コントロールを使用できます。

.ASPX:

<div id="depListId" class="panel">
    <ul id="depUl" class="list-group" runat="server">
        <asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <li class="list-group-item">
                    <a><%# Container.DataItem.ToString() %></a>
                    <asp:Button runat="server" class="deleteButton" 
                        CommandArgument='<%# Container.DataItem.ToString() %>' 
                        OnCommand="delete_button" 
                        Text="Delete" />
                </li>
            </ItemTemplate>
        </asp:Repeater>
    </ul>
</div>

コードビハインド:

public List<string> dep { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        dep = new List<string> { "Item 1", "Item 2", "Item 3" };
        Repeater1.DataSource = dep;
        Repeater1.DataBind();
    }
}

protected void delete_button(object sender, CommandEventArgs e)
{
    string text = e.CommandArgument.ToString();
}
于 2016-07-29T18:14:44.127 に答える
0

サーバーの onclick メソッドの 1 番目の引数はボタン コントロール (オブジェクト送信者) であるため、それをボタンにキャストし、属性https://msdn.microsoft.com/en-us/library/system.web.ui を取得します。 webcontrols.button.onclick(v=vs.110).aspx

于 2016-07-29T14:28:38.300 に答える