有阿
<asp:DropDownList id="JumpClass" runat="server" AutoPostBack="true" OnSelectedIndexChanged="JumpClassTo"></asp:DropDownList>
<asp:DropDownList id="JumpClass" runat="server" AutoPostBack="true" OnSelectedIndexChanged="JumpClassTo"></asp:DropDownList>
不这样写直接选择事件是没问题,这样写有时会有问题。
{
Response.Redirect("ArticleManage.aspx?ClassID="+JumpClass.SelectedItem.Value);
}JumpClass.SelectedItem.Value是否==“”呢?
Page_load()
{
if (!Page.IsPostBack)
{
........你的绑定代码
{
}
Page_load()
{
if (!Page.IsPostBack)
{
public void JumpClassTo(Object s,EventArgs e)
{
if(JumpClass.SelectedItem.Value!="")
{
Response.Redirect("ArticleManage.aspx?ClassID="+JumpClass.SelectedItem.Value);
}
} {
}
2.如果把你写在页面初始化(page_load)中的绑定程序用
if(!page.IsPostBack)
{
........你的程序
}
应该可以解决了
2:可能你的时间触发有错误,可重新写入试试,我原来也遇到过这种情况
if(JumpClass.SelectedItem.Value!="")
改成
if(JumpClass.SelectedValue!=""){
Response.Redirect("ArticleManage.aspx?ClassID="+JumpClass.SelectedValue);}2.this.JumpClass.SelectedIndexChanged已委托了事件.那么控件属性OnSelectedIndexChanged="JumpClassTo">应该去掉.3.确保RePostBack后的Page_Load里始终保持JumpClass的数据绑定.
<asp:DropDownList id="JumpClass" runat="server" AutoPostBack="true"></asp:DropDownList>
if(IsPostBack)
{
JumpClass.DataBind();
}
public void JumpClassTo(Object s,EventArgs e)
{
if(JumpClass.SelectedValue!="")
{
Response.Redirect("ArticleManage.aspx?ClassID="+JumpClass.SelectedValue);
}
}
private void InitializeComponent()
{
this.JumpClass.SelectedIndexChanged += new System.EventHandler(this.JumpClassTo);
this.Load += new System.EventHandler(this.Page_Load);
this.DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.Item_Bound);
this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.Item_Bound);
}
注册事件