dropdownlist无法触发事件 嵌套母版页中的页面dropdownlist无法触发seletindexchange事件,其中autopostback=true 事件种该dropdownlist不存在相同内容原因 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { Bind(); this.bigTypeName_SelectedIndexChanged(new object(), new EventArgs()); } } void Bind() { string sel = "select * from proParType"; DataSet dt = bs.GetDataSet(sel); for (int i = 0; i < dt.Tables[0].Rows.Count; i++) { this.bigTypeName.Items.Add(dt.Tables [0].Rows [i]["bigTypeName"].ToString()); } protected void bigTypeName_SelectedIndexChanged(object sender, EventArgs e) { this.proTypeName.Items.Clear(); string sel2 = "select * from proType where BigtypeName= '"+ this.bigTypeName.SelectedValue+"'"; try { DataSet ds = bs.GetDataSet(sel2); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { this.proTypeName.Items.Add(ds.Tables[0].Rows[i]["proTypeName"].ToString()); } } catch { } } } this.bigTypeName_SelectedIndexChanged(new object(), new EventArgs());是我要在选择bigTypeName这个dropdowlist时候触发以上事件 ,在load事件中声明一下是为了bigTypeName和proTypeName均有初始值在。其余改变bigTypeName他适合就不触发事件了有dropdowlist1 id=bigTypeName有dropdowlist2 id=proTypeName目的:选择bigTypeName时候触发bigTypeName_SelectedIndexChanged事件 this.bigTypeName_SelectedIndexChanged(new object(), new EventArgs());错了 DropDownList1.AutoPostBack = true;把AutoPostBack 的属性设置为true就好了 去掉:this.bigTypeName_SelectedIndexChanged(new object(), new EventArgs()); 如果你想像你这样写可以这样 protected void Page_Load(object sender, EventArgs e) { DropDownList1.SelectedIndexChanged += new EventHandler(DropdownChanged); } protected void DropdownChanged(object sender, EventArgs e)//随便一个方法,只要有这2个参数即可用delegate挂载 { Label1.Text = (DropDownList1.SelectedItem.Text); }但是控件已经自己绑定bigTypeName_SelectedIndexChanged的话就不要在Page_Load掉用了啊 尝试过,但是无论选哪个选项,结果都是会自动切换到第一个,根本触发不了selectindexchange 必须注意的是,下拉列表绑定后,要放在if(!ispostback)条件中,然后出发的事件是SelectedIndexChanged或SelectedTextChanged if(!ispostback){//bindlst}估计是这里的问题吧. 可以把 bigTypeName_SelectedIndexChanged(object sender, EventArgs e)这个事件里的代码直接写到一个方法里,直接if (!this.IsPostBack)调用就可以吧。只有你的bigTypeName有初始值。 效果是一样的,只有在load中不postback时候才执行那个,其余的都不触发 bigTypeName_SelectedIndexChanged(object sender, EventArgs e)跟所放置没关系,我单步执行过了,即使我吧load事件中的删了,还是不触发 从现有的程序看,我觉得没毛病。检查一下:1, 你有没有在其他地方调用过 Bind()?2,你有没有把bigTypeName动态Add到其他控件。 (1).设个断点:先看有没有运行代码。(2).调用SelectedIndexChanged的语法:YourDropDownListID_SelectedIndexChanged(sender, e); 一般都是:1,autopostback=true;2.if(!ispostback){//bindlist()} <%@ Page Language="C#" AutoEventWireup="true" CodeFile="111111.aspx.cs" Inherits="_111111" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>无标题页</title></head><body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem>111</asp:ListItem> <asp:ListItem>222</asp:ListItem> <asp:ListItem>333</asp:ListItem> </asp:DropDownList> </div> </form></body></html>using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;public partial class _111111 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { Response.Write("我变了!"); }}看哪地方不一样的,自行修改 解决了,是嵌套模板页时都写了form原因,其他的都正常。谢谢各位大仙了 急求!!! 一个在线聊天系统 asp.net开发的 按退出按钮时,必填验证显示必须要填,怎么处理? mvc2发布失败 关于session问题,高分请教各路英雄,跟者有分 datatable.Rows.Find 小问题 请教留言板中值传递问题? 菜鸟问题......急...在线等待 看看这个问题怎么解决,我是个新手(在线等待) 应该如何配置服务器,使服务器能够将XML文件与aspx文件做相同的处理? ListView新增数据时取不到新值 在vs2010中建报表,报错,请问是什么原因 关于sgip1.2 开发问题
{
if (!this.IsPostBack)
{
Bind();
this.bigTypeName_SelectedIndexChanged(new object(), new EventArgs());
}
}
void Bind()
{
string sel = "select * from proParType";
DataSet dt = bs.GetDataSet(sel);
for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
{
this.bigTypeName.Items.Add(dt.Tables [0].Rows [i]["bigTypeName"].ToString());
}
protected void bigTypeName_SelectedIndexChanged(object sender, EventArgs e)
{
this.proTypeName.Items.Clear();
string sel2 = "select * from proType where BigtypeName= '"+ this.bigTypeName.SelectedValue+"'";
try
{
DataSet ds = bs.GetDataSet(sel2);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
this.proTypeName.Items.Add(ds.Tables[0].Rows[i]["proTypeName"].ToString());
}
}
catch
{
}
} }
是我要在选择bigTypeName这个dropdowlist时候触发以上事件 ,在load事件中声明一下是为了bigTypeName和proTypeName均有初始值在。
其余改变bigTypeName他适合就不触发事件了
有dropdowlist1 id=bigTypeName
有dropdowlist2 id=proTypeName
目的:选择bigTypeName时候触发
bigTypeName_SelectedIndexChanged事件
错了
把AutoPostBack 的属性设置为true就好了
{
DropDownList1.SelectedIndexChanged += new EventHandler(DropdownChanged);
}
protected void DropdownChanged(object sender, EventArgs e)//随便一个方法,只要有这2个参数即可用delegate挂载
{
Label1.Text = (DropDownList1.SelectedItem.Text);
}
但是控件已经自己绑定bigTypeName_SelectedIndexChanged的话就不要在Page_Load掉用了啊
{
//bindlst
}
估计是这里的问题吧.
跟所放置没关系,我单步执行过了,
即使我吧load事件中的删了,还是不触发
(2).调用SelectedIndexChanged的语法:
YourDropDownListID_SelectedIndexChanged(sender, e);
1,autopostback=true;
2.if(!ispostback){//bindlist()}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="111111.aspx.cs" Inherits="_111111" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>111</asp:ListItem>
<asp:ListItem>222</asp:ListItem>
<asp:ListItem>333</asp:ListItem>
</asp:DropDownList>
</div> </form>
</body>
</html>using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;public partial class _111111 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write("我变了!");
}
}看哪地方不一样的,自行修改