在我的 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
事件末尾的代码中调用 data-toggle
和 data-target
功能?或者也许还有其他方法可以解决我的问题?
最佳答案
您可以在页面的 OnInit 方法中绑定(bind)添加属性,这样它们将使用指定的属性进行渲染,并且后端也会在需要时了解它们。
示例:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
btnSelectPhoto.Attributes.Add("data-toggle", "modal");
btnSelectPhoto.Attributes.Add("data-target", "#album");
}
编辑:正如您所说,这是在 ListView 上,上面的解决方案也可以工作,它有点 hacky,但您可以这样做
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());
}
Data 是绑定(bind)到此模板按钮的 ListView 的数据。
关于javascript - LinkButton OnClick 不与数据目标和数据切换一起运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38192138/