是的我已经阅读了很多关于如何使这个东西工作的内容,但不幸的是我的是一个动态按钮,所有 id 都是唯一的;所以它是在C#中使用StringBuilder
创建的,如下所示:
html.Append("<button id=\"" + dr["ID"].ToString() + "\" type=\"submit\" class=\"btn btn-primary btn-xs\" data-toggle=\"modal\" data-target=\"#myModal\" runat=\"server\" onserverclick=\"btnShowModal_ServerClick\"><i class=\"fa fa-eye\"></i></button>");
显然它打开了一个模态,但我想在它打开btnShowModal_ServerClick
事件中的模态之前做一些事情。可悲的是它没有击中,事件,但它击中Page_Load
事件,因为属性type="submit"
使模态不显示。对此有任何解决方法吗?我已经在这上花了3个小时。
答案 0 :(得分:2)
根据您的要求,您可以实施
使用指向javascript方法btnShowModal_ServerClick
html.Append("<button id=\"" + dr["ID"].ToString() + "\" type=\"submit\" class=\"btn btn-primary btn-xs\" data-toggle=\"modal\" data-target=\"#myModal\" runat=\"server\" onclick=\"javascript:btnShowModal_ServerClick('" + dr["ID"] + "')\"><i class=\"fa fa-eye\"></i></button>");
然后在btnShowModal_ServerClick
javaScript函数中,触发你的模态弹出窗口显示。在我的下面的JavaScript函数中需要注意的一件重要事情是,我如何将一个回调函数分配给一个虚构的弹出窗口。在弹出模式中单击“确定”时,将调用此回调。
注意: 大多数模态插件都可以指定Yes
或No
选择
<script type="text/javascript">
function btnShowModal_ServerClick(parameterId)
{
showModal({
callBackFn : function(){
__doPostBack('btnSave', parameterId);
}
});
}
</script>
当您选择是时,附加到模态弹出窗口的callBack函数将执行,它将触发在其中指定的.NET回发。
所以当页面回发&amp;重新加载你可以测试Event参数以获取dr [“ID”“]指定的值,如下所示
public void Page_Load(object sender, EventArgs e)
{
string parameter = Request["__EVENTARGUMENT"]; // parameter
if(Request["__EVENTTARGET"] =="btnSave")
{ /*Do Something with the parameter = dr["ID"]*/}
}