为什么不论选dropdownlist的哪个选项,都是跳转到同一个页面?
我想点击Button后,能根据选择的dropdownlist的Text,跳转到相应的页面,可是,事实是不管我选哪一项,最后都跳转到同一个页面(都跳到第一项车刀的那个页面)...
我想点击Button后,能根据选择的dropdownlist的Text,跳转到相应的页面,可是,事实是不管我选哪一项,最后都跳转到同一个页面(都跳到第一项车刀的那个页面):
protected void Button1_Click(object sender, EventArgs e)
{
if (DropDownListDJLB.SelectedItem.Text == "车刀")
Response.Redirect("CDDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "铣刀")
Response.Redirect("XDDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "拉刀")
Response.Redirect("LDDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "钻孔刀具")
Response.Redirect("ZKDJDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "齿轮滚刀")
Response.Redirect("CLGDDMTJ.aspx",true);
}
共有两个dropdownlist,一个是刀具标准,一个是刀具类别,由刀具类别那个来控制跳转。
前面的代码是:
protected void Page_Load(object sender, EventArgs e)
{
string myConnStr = "Data Source=ZDK.\\SQLEXPRESS;Initial Catalog=刀具代码库;Integrated security=True";
SqlConnection myConn = new SqlConnection(myConnStr);
string sql = "select 刀具标准 from 标准表";
SqlCommand myComm = new SqlCommand(sql, myConn);
myConn.Open();
SqlDataReader myReader = myComm.ExecuteReader();
while (myReader.Read())
this.DropDownListDJBZ.Items.Add(myReader.GetValue(0).ToString());
myReader.Close();
//
sql = "select 刀具类别 from 刀具类别表";
myComm = new SqlCommand(sql, myConn);
myReader = myComm.ExecuteReader();
while (myReader.Read())
this.DropDownListDJLB.Items.Add(myReader.GetValue(0).ToString());
myReader.Close();
} 展开
protected void Button1_Click(object sender, EventArgs e)
{
if (DropDownListDJLB.SelectedItem.Text == "车刀")
Response.Redirect("CDDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "铣刀")
Response.Redirect("XDDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "拉刀")
Response.Redirect("LDDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "钻孔刀具")
Response.Redirect("ZKDJDMTJ.aspx",true);
else if (DropDownListDJLB.SelectedItem.Text == "齿轮滚刀")
Response.Redirect("CLGDDMTJ.aspx",true);
}
共有两个dropdownlist,一个是刀具标准,一个是刀具类别,由刀具类别那个来控制跳转。
前面的代码是:
protected void Page_Load(object sender, EventArgs e)
{
string myConnStr = "Data Source=ZDK.\\SQLEXPRESS;Initial Catalog=刀具代码库;Integrated security=True";
SqlConnection myConn = new SqlConnection(myConnStr);
string sql = "select 刀具标准 from 标准表";
SqlCommand myComm = new SqlCommand(sql, myConn);
myConn.Open();
SqlDataReader myReader = myComm.ExecuteReader();
while (myReader.Read())
this.DropDownListDJBZ.Items.Add(myReader.GetValue(0).ToString());
myReader.Close();
//
sql = "select 刀具类别 from 刀具类别表";
myComm = new SqlCommand(sql, myConn);
myReader = myComm.ExecuteReader();
while (myReader.Read())
this.DropDownListDJLB.Items.Add(myReader.GetValue(0).ToString());
myReader.Close();
} 展开
3个回答
展开全部
初学.net很容易忽略一个问题:.net的每一个后台事件触发以后,都会postback,页面都是在服务器端重新生成后发送到前端的,而每一次都要引发Page_Load。
你的Button1_Click触发以后,程序又重新生成了一次页面代码,而且执行过程是:先执行Page_Load,再执行Button1_Click。
也就是说,在执行Button1_Click之前,dropdownlist又重新生成了一次,且默认选中第一个选项,你刚才选中的下拉选项已经没用了,到执行Button1_Click代码的时候,当然跳到第一项车刀的那个页面了。
因此,你要避免每次有事件触发,都重新生成dropdownlist,就要把绑定dropdownlist值得那部分代码放入if(!Ispostback)
{
}
里面,这样,绑定dropdownlist值只会在第一次载入页面的时候执行一次,以后的postback都不执行,你选择下拉选项才有用。
你的Button1_Click触发以后,程序又重新生成了一次页面代码,而且执行过程是:先执行Page_Load,再执行Button1_Click。
也就是说,在执行Button1_Click之前,dropdownlist又重新生成了一次,且默认选中第一个选项,你刚才选中的下拉选项已经没用了,到执行Button1_Click代码的时候,当然跳到第一项车刀的那个页面了。
因此,你要避免每次有事件触发,都重新生成dropdownlist,就要把绑定dropdownlist值得那部分代码放入if(!Ispostback)
{
}
里面,这样,绑定dropdownlist值只会在第一次载入页面的时候执行一次,以后的postback都不执行,你选择下拉选项才有用。
追问
我将page_load()中的代码放入:
if(!Ispostback)
{
}
了,可还是始终跳转到车刀那个页面。请问可能是啥出了问题呢?
展开全部
请将有关 dropdownlist 中items绑定有关的代码贴出来....
也就是说将dropdownlist.items.add() 前后的相关代码贴出来,看看...
你是否在dropdownlist 的items绑定之前将dropdownilst.tems.clear() 了?
也就是说将dropdownlist.items.add() 前后的相关代码贴出来,看看...
你是否在dropdownlist 的items绑定之前将dropdownilst.tems.clear() 了?
更多追问追答
追问
总共两段代码,我把前面那段也贴出来了,请您帮我看一下
追答
将page_load()中的代码放入:
if(!Ispostback)
{
}
里面
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把if里面的条件的那个text改成value试试看呢、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询