触发问题,更新面板不起作用? [英] Trigger Problem, Update Panel Does Not Work?
问题描述
我创建动态LinkButton的和我想补充的LinkButton的点击触发到UpdatePanel的。
现在,当我第一次点击链接按钮触发的任何一个乳宁好,显示我的选择whitout回发。那之后,我点击其他LinkButton的所有页面加载和运行的回传让触发器不起作用!
有什么问题 ?请帮助!
保护无效的Page_Load(对象发件人,EventArgs的发送)
{ ShowAllCar();}公共无效ShowAllCar()
{ dsAraclarTableAdapters.tblAraclarTableAdapter _t =新dsAraclarTableAdapters.tblAraclarTableAdapter();
dsAraclar.tblAraclarDataTable _M = _t.GetData();
INT I = 0;
UpdatePanel1.Triggers.Clear();
pnlAraclar.Controls.Clear();
的foreach(在_m.Rows的DataRow _row)
{
LinkButton的_linkbutton =新的LinkButton();
我++;
_linkbutton.ID =选项+ i.ToString();
_linkbutton.Text =< IMG SRC ='+ _row [Resim]的ToString()+'。边界=0/>< B>中+ _row [马卡]的ToString()++ _row [模型]的ToString()+< / B>< BR />中+ _row [Ozellikler]的ToString()+:+ _row [KisFiyat]的ToString()+:+ _row [YazFiyat]的ToString();。
_linkbutton.CssClass =的ContextMenuItem;
_linkbutton.PostBackUrl =;
_linkbutton.Click + =新的EventHandler(OnCarSelect);
pnlAraclar.Controls.Add(_linkbutton); AsyncPostBackTrigger _trigger =新AsyncPostBackTrigger();
_trigger.ControlID = _linkbutton.ID;
_trigger.EventName =点击
UpdatePanel1.Triggers.Add(_trigger);
}
}保护无效OnCarSelect(对象发件人,EventArgs的发送)
{
lblSelection.Text =您选择了< B>中+((LinkButton的)寄件人)。文本+< / B>;
}
您需要添加控件回控制树早些时候页面生命周期:
preINIT 结果使用此事件
以下内容:结果
...结果
*创建或重新创建动态控件。结果
...
块引用>I create dynamic LinkButton and I add LinkButton's Click Trigger to UpdatePanel.
Now, When I first click to any one of link button trigger is runing good and show my select whitout POSTBACK. After That, I click other LinkButton All Page Loading and POSTBACK running so Trigger Does Not Work! What is the problem ? Please Help!
protected void Page_Load(object sender, EventArgs e) { ShowAllCar(); } public void ShowAllCar() { dsAraclarTableAdapters.tblAraclarTableAdapter _t=new dsAraclarTableAdapters.tblAraclarTableAdapter(); dsAraclar.tblAraclarDataTable _m =_t.GetData(); int i=0; UpdatePanel1.Triggers.Clear(); pnlAraclar.Controls.Clear(); foreach (DataRow _row in _m.Rows) { LinkButton _linkbutton =new LinkButton(); i++; _linkbutton.ID ="Option" + i.ToString(); _linkbutton.Text = "<img src='" + _row["Resim"].ToString() + "' border='0'/> <b>" + _row["Marka"].ToString() + " " + _row["Model"].ToString() + "</b><br/>" + _row["Ozellikler"].ToString() + " : " + _row["KisFiyat"].ToString() + ":" + _row["YazFiyat"].ToString(); _linkbutton.CssClass="ContextMenuItem"; _linkbutton.PostBackUrl = ""; _linkbutton.Click +=new EventHandler(OnCarSelect); pnlAraclar.Controls.Add(_linkbutton); AsyncPostBackTrigger _trigger = new AsyncPostBackTrigger(); _trigger.ControlID = _linkbutton.ID; _trigger.EventName = "Click"; UpdatePanel1.Triggers.Add(_trigger); } } protected void OnCarSelect(object sender, EventArgs e) { lblSelection.Text = "You selected <b>" + ((LinkButton)sender).Text + "</b>."; }
解决方案You need to add the controls back to the control tree earlier in the page life cycle:
PreInit
Use this event for the following:
...
* Create or re-create dynamic controls.
...ASP.NET Page Life Cycle Overview
这篇关于触发问题,更新面板不起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!