sam 发表于 2013-3-2 21:01:00

【ASP.NET】为什么Spread控件不能设置属性ClientIDMode为:ClientIDMode.Static

Hidof oriceman:

请问,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.RowCount = 5;
            sp.Sheets.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);


      }

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

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

sam 你好

我这边和产品团队确认了,这是Spread的一个产品Bug,非常抱歉。该问题修复之后我会邮件通知你。

sam 发表于 2013-3-5 18:30:00

好的。谢谢!

ZenosZeng 发表于 2013-3-7 18:22:00

那我先关闭该问题。

sam 发表于 2013-3-7 20:59:00

我想问下,这个问题什么时候能解决?谢谢!

ZenosZeng 发表于 2013-3-8 16:42:00

抱歉,产品团队现在还没有下一版本的详细发布时间,现在还不能明确的知道什么时候会修复该问题,一旦修复我会邮件通知你。
页: [1]
查看完整版本: 【ASP.NET】为什么Spread控件不能设置属性ClientIDMode为:ClientIDMode.Static