2012-08-09 160 views
1

我正在VS2010下開發一個C#ASP.NET應用程序。我想通過將HTML文本寫入文字來生成動態表格,包括在我的表格上動態插入按鈕。我知道如何創建動態ASP.NET控件,但是我對動態HTML控件有一個小問題。我創建了一個HTML按鈕,但我不知道如何給它一個服務器端的點擊功能。單擊事件爲HTML動態按鈕

我可以創建動態ASP.NET控件並將它們插入到我的文字中嗎?我如何獲得動態創建的按鈕來觸發服務器端事件?

我已經使用OnServerClick屬性來定義我的服務器端功能,但它沒有效果,我該如何使用此值?

+1

哪裏是來自該表的數據?考慮使用['Repeater control'](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.repeater.aspx)重做您的表格創建,這將爲您提供更多的靈活性在生成你的表格(包括有服務器端按鈕)。 – saluce 2012-08-09 14:30:18

+0

我知道有更好的方法來執行這個動作,但我必須使用文字,我可以創建按鈕這個按鈕標籤,但我不知道如何添加一個點擊事件它 – 2012-08-09 14:32:08

回答

1

如果你想回來後您按一下按鈕,你就必須添加__doPostBack功能上它是onclick事件,爲此,你可以添加像

StringBuilder dynamicHtml = new StringBuilder(); 
dynamicHtml.Append("Your Html Code"); 
dynamicHtml.Append("<input type='button' id='btn1' name='btn1' onclick='__doPostBack(\'btn1\',\'\')' value='Click Here' />"); 

一個按鈕,當你點擊它,它就會發布返回,並且您可以檢查Request.Form["__EVENTTARGET"]以查找回髮網頁的人員。

通過在Page_Load事件處理程序檢查Request.Form["__EVENTTARGET"],你可以打電話給你的任何服務器端方法類似

protected void Page_Load(object sender, EventArgs e) 
{ 
    var eventTarget = Request.Form["__EVENTTARGET"].ToString(); 

    if(eventTarget == "btn1") 
    { 
     CallMethod1(); 
    } 
} 


private void CallMethod1() 
{ 
    //Code which you want to run 
} 
+0

非常感謝,但我怎樣才能定義它的點擊功能?回發後會發生什麼?我想爲此按鈕定義一個點擊功能 – 2012-08-09 14:40:34

+1

檢查更新的答案。 – 2012-08-09 14:47:41

+0

謝謝我會測試它 – 2012-08-09 14:49:58