在我的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-toggle
和data-target
属性,它似乎没有触发OnClick
事件(断点永远不会发生)。当我删除
data-toggle
和data-target
属性时,该事件会完全触发,但是我需要存在数据切换和数据目标。在我的data-toggle
事件结束时,我是否可以在后面的代码中调用data-target
和OnClick
功能?或其他解决我问题的方法? 最佳答案
您可以在页面的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的数据。