在我的asp.net应用程序(使用C#)中,我具有以下链接按钮:

<asp:LinkButton ID="btnSelectPhoto" runat="server" Width="120" style="display:inline-block; margin:5px;"
    CausesValidation="false"
    CommandArgument='<%# Eval("Id") + "," + Eval("Name") + "," + Eval("Description") + "," + Eval("Path") + "," +  Eval("DateCreated") %>'
    OnClick="btnSelectPhoto_Click"
    data-toggle="modal" data-target="#album-photo" >

    ...

</asp:LinkButton>


当前具有data-toggledata-target属性,它似乎没有触发OnClick事件(断点永远不会发生)。

当我删除data-toggledata-target属性时,该事件会完全触发,但是我需要存在数据切换和数据目标。在我的data-toggle事件结束时,我是否可以在后面的代码中调用data-targetOnClick功能?或其他解决我问题的方法?

最佳答案

您可以在页面的OnInit方法上绑定添加属性,以使它们将使用指定的属性呈现,并且后端将在需要时知道它们。

样品:

  protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        btnSelectPhoto.Attributes.Add("data-toggle", "modal");
        btnSelectPhoto.Attributes.Add("data-target", "#album");
    }


编辑:正如您所说的,这是在ListView上的,上面的解决方案也可以工作,虽然有点黑,但是您可以这样做

    protected void Page_Load(object sender, EventArgs e)
    {

        this.ListView1.DataSource = new[] { 1, 2, 3, 4, 5 };
        this.ListView1.DataBind();
    }

    protected void Button1_Init(object sender, EventArgs e)
    {
        var dataList = ListView1.DataSource as IEnumerable<int>;
        var senderButton = (sender as Button);
        var data = (senderButton.NamingContainer as ListViewItem).DataItem;
        senderButton.Attributes.Add("data-x", data.ToString());
    }


数据是绑定到此模板按钮的ListView的数据。

09-25 18:06
查看更多