找回密码
 立即注册

QQ登录

只需一步,快速开始

sam
论坛元老   /  发表于:2013-3-2 21:01  /   查看:8009  /  回复:8
Hi  dof or  iceman:

请问,Spread表格控件为什么不能设置属性ClientIDMode为:ClientIDMode.Static。一设置后,就会报错,不能正常使用。
因,在我的工程中要包装Spread控件的ID为自己指定的,这样,我把表格控件放到:AjaxControlToolkit.TabContainer控件中的名称就会变掉。
我的名称是静态的。

有没办法,在AjaxControlToolkit.TabContainer控件中的Spread控件的ID属性固定。
我的Demo代码如下:
protected void Page_Load(object sender, EventArgs e)
        {
            AjaxControlToolkit.TabPanel ta = new AjaxControlToolkit.TabPanel();
            ta.HeaderText = "你好";
            ta.ID = "1";
            ta.TabIndex = 0;
            Label lb = new Label();
            lb.ID = "lbl1";
            lb.Text = "你好的具体内容";
            ta.Controls.Add(lb);

            AjaxControlToolkit.TabPanel tb = new AjaxControlToolkit.TabPanel();
            tb.HeaderText = "你好吗";
            tb.ID = "2";
            tb.TabIndex = 1;
            Label lb1 = new Label();
            lb1.ID = "ibl2";
            lb1.Text = "你好吗的具体内容";
            tb.Controls.Add(lb1);


            AjaxControlToolkit.TabPanel tc = new AjaxControlToolkit.TabPanel();
            tc.HeaderText = "表格";
            tc.ID = "3";
            tc.TabIndex = 2;
            FarPoint.Web.Spread.FpSpread sp = new FpSpread(1);
            sp.ID = "spread1";
            sp.ClientIDMode = ClientIDMode.Static;            sp.Height = Unit.Parse("180px");
            sp.Sheets[0].RowCount = 5;
            sp.Sheets[0].ColumnCount = 5;

            Button btn = new Button();
            btn.ID = "btn1";
            btn.Text = "我的按钮";

            tc.Controls.Add(sp);
            tc.Controls.Add(btn);


            AjaxControlToolkit.TabContainer tab = new AjaxControlToolkit.TabContainer();
            tab.Height = Unit.Parse("200px");
            tab.ID = "tab";
            tab.Tabs.Add(ta);
            tab.Tabs.Add(tb);
            tab.Tabs.Add(tc);
            this.Panel1.Controls.Add(tab);


        }

以上,麻烦想下办法。看能否解决。谢谢!

8 个回复

倒序浏览
sam
论坛元老   /  发表于:2013-3-3 08:49:00
沙发
补充,如果不设置属性为:ClientIDMode.Static,则当表格控件放到AjaxControlToolkit.TabContainer控件中。就不能在Js中以:在后台设置的表格名(如:Fpspread1) 取得表格对象。  谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-4 19:45:00
板凳
Hi sam

无法使用ClientIDMode.Static类型,这点只能使用替代方案,然后你在JS中通过 document.getElementById("<% =FpSpread1.ClientID %>"); 来换取spread对象。
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-3-5 17:04:00
地板
這種方法,我知道。可是Spread控件為什么不能設置屬性為:ClientIDMode.Static 呢?其他控件都是可以設置的呀。因為控件名字是我在后臺動態定義的。然后再前臺要通過我動態的名字來找Spread控件。
麻煩再想想辦法看是否可以解決?謝謝!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-5 17:33:00
5#
sam 你好

我这边和产品团队确认了,这是Spread的一个产品Bug,非常抱歉。该问题修复之后我会邮件通知你。
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-3-5 18:30:00
6#
好的。谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-7 18:22:00
7#
那我先关闭该问题。
回复 使用道具 举报
sam
论坛元老   /  发表于:2013-3-7 20:59:00
8#
我想问下,这个问题什么时候能解决?谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-3-8 16:42:00
9#
抱歉,产品团队现在还没有下一版本的详细发布时间,现在还不能明确的知道什么时候会修复该问题,一旦修复我会邮件通知你。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部