FineUI 官方论坛
标题:
关于使用window的IFrameUrl嵌套窗体的bug问题
[打印本页]
作者:
小田
时间:
2012-4-19 18:21
标题:
关于使用window的IFrameUrl嵌套窗体的bug问题
问题:关于使用window的IFrameUrl嵌套窗体,单步执行代码时,每行代码都执行2遍。
部分代码
1、gridview中绑定行
this.EG_Data.Columns.Add(SetLinkButtonFieldItem(false, "DF_VIEWUSER", "查看组用户", false, string.Empty, "ViewUserList", "用户组", 0, true));
2、setLinkButtonFieldItem方法如下(就是新建一行)
/// <summary>
/// 构造LinkButtonFieldItem(无确认提示) 显示固定值
/// </summary>
/// <param name="Hidden">是否隐藏</param>
/// <param name="Id">列ID</param>
/// <param name="Text">数据字段</param>
/// <param name="HasToolTip">是否显示提示</param>
/// <param name="DataTooltipField">提示字段</param>
/// <param name="CommandName">命令</param>
/// <param name="HeaderText">列标题</param>
/// <param name="PixelWidth">列宽</param>
/// <returns></returns>
protected LinkButtonField SetLinkButtonFieldItem(bool Hidden, string Id, string Text, bool HasToolTip, string DataTooltipField, string CommandName, string HeaderText, int PixelWidth,bool EnableValue)
{
LinkButtonField NewItem = new LinkButtonField();
NewItem.Enabled = EnableValue;
NewItem.Hidden = Hidden;
NewItem.ColumnID = Id;
NewItem.Text = Text;
if (HasToolTip)
{
NewItem.DataToolTipField = DataTooltipField;
}
NewItem.HeaderText = HeaderText;
NewItem.CommandName = CommandName;
if (PixelWidth != 0)
{
NewItem.Width = System.Web.UI.WebControls.Unit.Pixel(PixelWidth);
}
return NewItem;
}
3、行绑定事件
protected override void GRID_RowCommand(object sender, GridCommandEventArgs e)
{
string id = ((ExtAspNet.Grid)sender).Rows[e.RowIndex].DataKeys[0].ToString();
string rolename = ((ExtAspNet.Grid)sender).Rows[e.RowIndex].DataKeys[1].ToString();
// ExtAspNet.LinkButtonField lb = this.EG_Data.FindControl(id);
switch (e.CommandName)
{
case "ViewUserList":
this.W_Command.IFrameUrl = "ManageRole/ManageRoleUser.aspx?MCODE=" + MODULECODE + "&&ROLEID=" + id;
this.W_Command.Title ="["+rolename+"]角色管理";
this.W_Command.Hidden = false;
break;
}
}
上面用到的window(W_Command)的IframeUrl,嵌套打开另一个(ManageRoleUser.aspx)页面,则单步调试ManageRoleUser.aspx页面时,从onload方法开始(按F10),每行代码都执行2遍。
我换了示例中的 windowfield,不用LinkButtonField,就不会有代码执行2遍的问题
<
ext
:
WindowField
Width
=
"60px"
WindowID
=
"Window1"
Icon
=
"TableEdit"
ToolTip
=
"编辑"
DataIFrameUrlFields
=
"Id,Name"
DataIFrameUrlFormatString
=
"../grid/grid_iframe_window.aspx?id={0}&name={1}"
Title
=
"编辑"
IFrameUrl
=
"~/alert.aspx"
/>
问:现在是因为extaspnet框架中,IframeUrl这个还有bug吗?
作者:
小田
时间:
2012-4-24 11:33
怎么没人来看?
作者:
小田
时间:
2012-5-3 14:23
期待回答~~~
作者:
sanshi
时间:
2012-5-5 17:44
小田 发表于 2012-5-3 14:23
期待回答~~~
写个简单的能直接运行的示例....
作者:
ecloudzhao
时间:
2014-4-4 21:59
我也发现这个问题。
如果IFrameUrl 的值在后台赋值,那么在加载页面的时候会同时加载WindowAdd页面,再一次打开WindowAdd页面的时候会执行第二次。这样有些操作会出现很大的问题。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
WindowAdd.IFrameUrl = "TZD_Add.aspx?XMGuid=" + ViewState["XMGuid"].ToString();
btnAdd.OnClientClick = WindowAdd.GetShowReference();
this.BindGrid();
}
}
欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/)
Powered by Discuz! X3.4