FineUI 官方论坛
标题:
FineUI.Button事件,采用服务器响应方法出现问题
[打印本页]
作者:
renbovip
时间:
2015-11-10 13:00
标题:
FineUI.Button事件,采用服务器响应方法出现问题
大致代码如下:
protected void Page_Load(object sender, EventArgs e)
{
.......(省略)
FineUI.Button btn = new FineUI.Button();
btn.ID = item;
btn.Text = method.Description;
btn.Icon = Icon.Add;
btn.Click += new EventHandler(MethodButtonScriptReference);
.......
}
public void MethodButtonScriptReference(object sender,EventArgs e)
{
(执行这里出错!)
PageContext.RegisterStartupScript(GetmethodCode());
}
public string GetmethodCode()
{
Window win = new Window();
win.ID = panelName;
win.Hidden = true;
win.EnableIFrame = true;
win.EnableResize = true;
win.WindowPosition = WindowPosition.GoldenSection;
win.Target = Target.Parent;
win.IsModal = true;
PageManager.Instance.Controls.Add(win);
string url = "~/Pages/EditPanelPage.aspx";
return win.GetShowReference(url,"新增",new Unit(600),new Unit(400));
}
调用的顺序是页面上添加一个按钮,按钮事件由服务器端处理,然后调用PageContext.RegisterStartupScript返回一段js脚本,在这里就出错了。
如果换用btn.OnClientClick = MethodButtonScriptReference(btn)使用脚本就没问题,但我希望使用事件响应函数,这样每次调用GetmethodCode()可以返回不同的脚本,请教下如何解决问个问题?
作者:
zy32002
时间:
2015-11-10 13:14
你那样写是不行的,不能添加控件,除非你刷新页面才可以。
添加控件只能在page_load,page_init等事件里写。
作者:
sanshi
时间:
2015-11-10 14:13
1. 所有动态创建控件的代码放到 Page_Init 中,参考:
http://www.cnblogs.com/sanshi/archive/2012/11/19/2776672.html
2. 这样不对:PageManager.Instance.Controls.Add(win);,Window控件请直接添加到 <form> 中
作者:
renbovip
时间:
2015-11-10 15:10
代码有些错误,动态创建控件确实是放在page_init中的,是传的代码写错了,另外PageManager.Instance.Controls.Add(win)确实也能运行,应该问题不在这里
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4