【问题标题】:Sending html anchors text as a parameter to onclick func. c#将 html 锚文本作为参数发送到 onclick 函数。 C#
【发布时间】:2016-12-04 07:31:57
【问题描述】:

我一直在尝试向 onclick 函数发送参数。看看我的代码,那里有一个 foreach 。这是用于创建<li> 相关数据库。此项目来自数据库。我想在删除按钮 onclick 中再次使用它。它必须来自按钮<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>

【问题讨论】:

    标签: c# html asp.net onclick commandargument


    【解决方案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();
    }
    

    【讨论】:

    • 这是完美的工作。 (很抱歉这么晚的反馈)谢谢 Wessels 先生。
    【解决方案2】:

    您的服务器 onclick 方法中的第一个参数是按钮控件(对象发送者),因此将其转换为您的按钮并获取其属性 https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclick(v=vs.110).aspx

    【讨论】:

    • 我仍然不知道如何获取锚文本。
    • 试试看((Button)Sender).Attributes
    • 我想不通。我已经一天了。 (今天早上我也尝试了属性)看看我的代码。里面有eval。我想如果我能用那个寄出物品,那就太好了
    猜你喜欢
    • 2011-05-14
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-07-30
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多