2016-06-09 62 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語句,這是例如,您可以使用參數值來執行數據庫查詢 –

相關問題