前台UI:(下面2种方式都可以)
<f:TemplateField HeaderText="模板列" Width="60px">
<ItemTemplate>
<a href="javascript:<%# GetEditUrl(Eval("Id"), Eval("zxname")) %>">编辑</a>
</ItemTemplate>
</f:TemplateField>
或
<f:TemplateField HeaderText="操作" Width="100px">
<ItemTemplate>
<a href="javascript:;" onclick="<%# GetEditUrl(Eval("id"), Eval("zxname")) %>">编辑</a>
</ItemTemplate>
</f:TemplateField>
后台逻辑:
//打开新选项卡
protected string GetEditUrl(object id, object zxname)
{
JsObjectBuilder joBuilder = new JsObjectBuilder();
joBuilder.AddProperty("id", "grid_newtab_edit_" + id);
joBuilder.AddProperty("title", "编辑 - " + zxname);
joBuilder.AddProperty("iframeUrl", ResolveUrl(String.Format("~/zxb_list_edit.aspx?id={0}&zxname={1}", id, HttpUtility.UrlEncode(zxname.ToString()))));
joBuilder.AddProperty("refreshWhenExist", true);
joBuilder.AddProperty("iconFont", "pencil");
// addExampleTab函数定义在default.aspx
return String.Format("parent.addExampleTab({0});", joBuilder);
}
//在主框架页的SCRIPT中加入下面代码:(打开新选项卡功能块需要)
F.ready(function () {
**********此处是其它代码区******
window.addExampleTab = function (id, url, text, icon, refreshWhenExist) {
// 动态添加一个标签页
// mainTabStrip: 选项卡实例
// id: 选项卡ID
// url: 选项卡IFrame地址
// text: 选项卡标题
// icon: 选项卡图标
// addTabCallback: 创建选项卡前的回调函数(接受tabConfig参数)
// refreshWhenExist: 添加选项卡时,如果选项卡已经存在,是否刷新内部IFrame
F.util.addMainTab(mainTabStrip, id, url, text, icon, null, refreshWhenExist);
};
});