有人问
(1)autopostback=”true”
<asp:dropdownlist id=”dropdownlist1″ runat=”server” autopostback=”true”></asp:dropdownlist>
(2)事件也注册了
this.dropdownlist1.selectedindexchanged += new system.eventhandler(this.dropdownlist1_selectedindexchanged);
(3)事件也写了
private void dropdownlist1_selectedindexchanged(object sender, system.eventargs e)
{
response.write(this.dropdownlist1.selecteditem);
}
{
response.write(this.dropdownlist1.selecteditem);
}
怎么还是不能输出选定项?进行调试发现不能进入selectedindexchanged事件。
其实还有一种可能,就是你为dropdownlist的不同option设置了相同的value
比如后台这么写:
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
}
这样不会触发selectedindexchanged事件,修改成
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),i.tostring()));
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),i.tostring()));
}
一切些正常,根据msdn的解释:
listcontrol.selectedindexchanged 事件
当列表控件的选定项在信息发往服务器之间变化时发生
这不同于js的onchange事件,改为
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
测试可知。
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
测试可知。
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),i.tostring()));
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),i.tostring()));
}
一切些正常,根据msdn的解释:
listcontrol.selectedindexchanged 事件
当列表控件的选定项在信息发往服务器之间变化时发生
这不同于js的onchange事件,改为
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
测试可知。
if(!ispostback)
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
{
for(int i=0;i<10;i++)this.dropdownlist1.items.add(new listitem(i.tostring(),“same_value“));
this.dropdownlist1.attributes.add(“onchange“,“alert(test);“);
}
测试可知。