在我的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
功能?或者也许是我问题的其他一些解决方案?
答案 0 :(得分:0)
您可以绑定在页面的OnInit方法中添加属性,使用指定的属性呈现它们,并且如果需要,后端也会知道它们。
示例:
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());
}
数据是绑定到此模板按钮的ListView的数据。
答案 1 :(得分:0)
我找到了解决方案。我在OnClick
事件结束时添加了以下代码行,现在一切正常。
ClientScript.RegisterStartupScript(GetType(), "Show", "<script> $('#album-photo').modal('toggle');</script>");