【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);
}
以上,麻烦想下办法。看能否解决。谢谢! 补充,如果不设置属性为:ClientIDMode.Static,则当表格控件放到AjaxControlToolkit.TabContainer控件中。就不能在Js中以:在后台设置的表格名(如:Fpspread1) 取得表格对象。谢谢! Hi sam
无法使用ClientIDMode.Static类型,这点只能使用替代方案,然后你在JS中通过 document.getElementById("<% =FpSpread1.ClientID %>"); 来换取spread对象。 這種方法,我知道。可是Spread控件為什么不能設置屬性為:ClientIDMode.Static 呢?其他控件都是可以設置的呀。因為控件名字是我在后臺動態定義的。然后再前臺要通過我動態的名字來找Spread控件。
麻煩再想想辦法看是否可以解決?謝謝! sam 你好
我这边和产品团队确认了,这是Spread的一个产品Bug,非常抱歉。该问题修复之后我会邮件通知你。 好的。谢谢! 那我先关闭该问题。 我想问下,这个问题什么时候能解决?谢谢! 抱歉,产品团队现在还没有下一版本的详细发布时间,现在还不能明确的知道什么时候会修复该问题,一旦修复我会邮件通知你。
页:
[1]