我正在尝试使用后面的代码创建DDL
列表,如您所见:
public List<DropDownList> ddll = new List<DropDownList>();
for (int i = 0; i < 15; i++)
{
DropDownList ansList = new DropDownList();
ansList.AutoPostBack = false;
ansList.DataSource = values1;
ansList.DataBind();
ddll.Add(ansList);
}
正如您所看到的,我在autopostback
上设置了false
属性。但是当用户更改selectedindex
时,我的网页会被刷新。
我使用以下内容添加了DDL
:
Span1.Controls.Add(ddll[0]);
Span2.Controls.Add(ddll[1]);
Span3.Controls.Add(ddll[2]);
Span4.Controls.Add(ddll[3]);
Span5.Controls.Add(ddll[4]);
Span6.Controls.Add(ddll[5]);
Span7.Controls.Add(ddll[6]);
Span8.Controls.Add(ddll[7]);
Span9.Controls.Add(ddll[8]);
Span10.Controls.Add(ddll[9]);
Span11.Controls.Add(ddll[10]);
Span12.Controls.Add(ddll[11]);
Span13.Controls.Add(ddll[12]);
Span14.Controls.Add(ddll[13]);
Span15.Controls.Add(ddll[14]);
在html代码中我有这个:
<span style="color:#ea0000;padding:0 10px;" id="Span6" runat="server"></span>
答案 0 :(得分:1)
查看您的代码
for (int i = 0; i < 15; i++)
{
DropDownList ansList = new DropDownList();
ansList.AutoPostBack = false; // Here You have set it false
ansList.DataSource = values1;
ansList.DataBind();
ansList.AutoPostBack = true; // Here You have set it true again
ddll.Add(ansList);
}
答案 1 :(得分:1)
您首先将AutoPostBack
设置为false
,然后在两个声明之后立即设置为true
。 false
会覆盖true
,现在应该在更改所选索引时进行回发。
ansList.AutoPostBack = false;
//...
ansList.AutoPostBack = true;
修改您还可以使用循环在使用FindControl(string id)的跨度中添加列表,以按ID获取范围。
for(int i=0; i < 15; i++)
this.FindControl("Span"+i).Add(ddll[i]);