※ 引述《moneylove (money)》之銘言:
: 各位高手
: 我想請問一下
: 就是如果把控制項塞到gridview中(比如:checkbox)
: 要用UpdatePanel裡面的trigger
: 不要postback回去 id= checkbox
: 想問一下
: 但在執行的時候
: 會抓不到gridview中的id
: 請問有辦法解決嗎??
: 謝謝各位
放在TemplateField的Control 在吐給Client端的時候會把ID轉換
因在網頁中每個控制項的ID必須是獨立的
因此若要把GridView中控制項設成Trigger,要單獨抓出來做處理
protected void Page_Load(object sender, EventArgs e)
{
foreach (GridViewRow gvRow in GridView1.Rows)
{
if (gvRow.RowIndex == 3) //要動態添加Trigger的列數
{
CheckBox cb = gvRow.FindControl("CheckBox1") as CheckBox;
cb.AutoPostBack = true; //設為AutoPostBack
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = cb.UniqueID; //抓取實體ID (對應html_name)
this.UpdatePanel1.Triggers.Add(trigger);
}
}
if (this.ScriptManager1.IsInAsyncPostBack)
UpdatePanel1.GetType().GetMethod("Initialize", BindingFlags.NonPublic |
BindingFlags.Instance).Invoke(UpdatePanel1, null);
}
不是很清楚樓主說的 [不要postback回去 id= checkbox] 是什麼意思
上面的做法是把GridView中的某個控制項設為 要更新該UpdatePanel1的Trigger
大致上的作法都大同小異
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.140.101
※ 編輯: ThreeDay0905 來自: 111.249.140.101 (09/19 16:28)