2016-06-09 27 views
0

是的我已阅读了很多关于如何使这件事情工作,但不幸的是我是一个动态按钮,所有ID是独特的;因此它在C#中使用StringBuilder像这样创建:如何使ASP.Net中的html按钮成为onserverclick命中?

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事件中的模式之前,做一些事情。可悲的是,它没有击中事件,但由于type="submit"属性使得模式不显示,所以它遇到Page_Load事件。任何解决方法?我已经花了3小时了。

+0

可能这是你在找什么。要从HTML按钮触发回发http://stackoverflow.com/a/3914500/2952405 –

+0

不,我的按钮是动态创建的,并且ID是唯一的,只有一个相同的ID –

回答

2

根据您的需要,这是如何实现

上用onclick事件指向一个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函数创建动态HTML控件,触发模式弹出现身。在我的下面的JavaScript函数中需要注意的一点很重要,就是我如何将一个回调函数分配给一个虚构的弹出窗口。当您在弹出窗口中单击确定时,将会调用此回调。

注:大多数模态插件将有一个办法上YesNo选择指定回调funtions

<script type="text/javascript"> 
function btnShowModal_ServerClick(parameterId) 
{ 
     showModal({ 
      callBackFn : function(){ 
       __doPostBack('btnSave', parameterId); 
      } 
     }); 
} 
</script> 

当您选择,附着在模式弹出回调函数将执行它会触发一个在其中指定的.NET回发。

所以当网页提交&重新加载,你可以测试事件的说法要回由医生指定的值[“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"]*/} 
} 
+0

所以我有10个按钮我将有10个if-else语句? –

+0

这不是关于if语句,这是例如,您可以使用参数值来执行数据库查询 –

相关问题