台灣最大程式設計社群網站
線上人數
1518
 
會員總數:245248
討論主題:189105
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 在ASP.NET C#中動態產生LINKBUTTON Click事件無法觸發響應
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
在ASP.NET C#中動態產生LINKBUTTON Click事件無法觸發響應
價值 : 100 QP  點閱數:432 回應數:5

樓主

精載
初學者
10 55
797 78
發送站內信

我是做一簡單預約頁面大概說下畫面配置及動作
畫面左邊有一日曆元件Calendar當點選日期觸發日曆元件的SelectionChanged在右邊動態產生時間及預約(LINKBUTTON)2字
而我產生預約(LINKBUTTON)2字CODE如下:

void GenDateState(int index, string time, string[][] myData)
{
LinkButton lk01 = new LinkButton();
lk01.ID = "lk_" + time;
lk01.Text = "預約";
lk01.Click += new EventHandler(CallClick);
Date_Panel.Controls.Add(new LiteralControl("<br>"));
Date_Panel.Controls.Add(lk01);
}

protected void CallClick(object sender, EventArgs e)
{
Response.Write(DateTime.Now.ToString());
}

問題是當我點預約2字不會觸發Click事件,但是我將這段程式碼搬到Page_Load去產生.Click事件就可正常觸發.想請問此問題該如何處理?

PS.1.在網路上有說沒註冊.請問該如何註冊?在哪註冊?
2.另外想問當點選日期觸發PostBack時在Page_Load有辦法抓到所點選時間嗎?(試過使用SelectedDate不能)





搜尋相關Tags的文章: [ 動態產生LINKBUTTON ] ,
本篇文章發表於2019-05-30 18:14
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
動態產生控制項
小喵遇到這樣的需求通常會有兩種做法
1.依舊動態產生控制項,但是產生控制項必須寫在『Page_Init』的事件中

2.不要動態產生控制項
事先在畫面上就安排好按鈕
我的程式去控制按鈕的『顯示』或『隱藏』

小喵通常選擇(2.)的做法
程式會比較容易懂,容易維護

^_^
本篇文章回覆於2019-06-03 09:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

精載
檢舉此回應
因為本人需求需動態產生但因不知如何在Page_Init或Page_Load中(點日期後發出POSTBACK後)抓出所點選的時間故無法再Page_Init或Page_Load產生.所以才想請問該如何再Page_Init或Page_Load抓正確出點選日期?因為我也想在Page_Init或Page_Load產生才不會事件不觸發.如大大知道望大大能告知方法或提供相關參考..........謝謝
本篇文章回覆於2019-06-05 08:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
動態產生控制項
您必須具備以下的基本知識,之後才是如何應用
1.頁面的事件生命週期
從Page_Init開始,所有事件的順序,關係,都必須清楚
2.委派
動態產生控制項了,而該控制項又希望能夠綁上『事件』,這就需要透過『委派』
3.狀態的存取
Web預設是沒有狀態的,您動態產生控制項後,他的狀態如果沒有自動存,您必須自己用程式控制

您可以用關鍵字『WebForm 動態產生控制項』找到很多人提到,要徹底了解還是需要上面的基礎知識

用aspx中準備好的控制項,去控制他的顯示或隱藏,就相對單純很多很多
^_^
本篇文章回覆於2019-06-05 10:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

精載
檢舉此回應
請問有參考文章嗎?我不太清楚這要怎麼委派
本篇文章回覆於2019-07-05 16:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
   
1

回覆
如要回應,請先登入.