DropDownList的onselectedindexchanged事件没反应

时间:2021-03-19 00:00:24
对listview自定义分页,

<div  runat = "server" style = "float:right; " >
        <asp:LinkButton ID="LinkFirst" runat="server" OnClick="LinkFirst_Click">第一页</asp:LinkButton>
        <asp:LinkButton ID="LinkUp" runat="server" OnClick="LinkUp_Click">上一页</asp:LinkButton>
        <asp:LinkButton ID="LinkDown" runat="server" OnClick="LinkDown_Click">下一页</asp:LinkButton>
        <asp:LinkButton ID="LinkLast" runat="server" OnClick="LinkLast_Click">最后一页</asp:LinkButton>
         转到第<asp:DropDownList ID="DropDownList1"  runat="server" 
                AutoPostBack="True" onselectedindexchanged="DropDownList1_SelectedIndexChanged" >
              </asp:DropDownList>页
</div>

onselectedindexchanged不起作用,设断点看了下,都没进入代码
谢谢各位高手指教,不甚感激。

9 个解决方案

#1


从你帖的前台代码来看 没有问题

#2




<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

 <!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" >
 <script language="c#" runat="server">

    ICollection CreateDataSource() {
       DataTable dt = new DataTable();
       DataRow dr;

       dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
       dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
       dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
       dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
       dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

       for (int i = 0; i < 9; i++) {
          dr = dt.NewRow();

          dr[0] = i;
          dr[1] = "Item " + i.ToString();
          dr[2] = DateTime.Now;
          dr[3] = (i % 2 != 0) ? true : false;
          dr[4] = 1.23 * (i+1);

          dt.Rows.Add(dr);
       }

       DataView dv = new DataView(dt);
       return dv;
    }

    void Page_Load(Object sender, EventArgs e) {
       if (!IsPostBack) {
          RadioButtonList1.DataSource = CreateDataSource();
          RadioButtonList1.DataTextField="StringValue";
          RadioButtonList1.DataValueField="CurrencyValue";
          RadioButtonList1.DataBind();
       }
    }

    void Index_Changed(Object sender, EventArgs e) {

       Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text +
                     " with a value of $" + RadioButtonList1.SelectedItem.Value +
                     ".";

    }

 </script>

 <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

    <form id="form1" runat="server">

       <asp:RadioButtonList id="RadioButtonList1" 
            OnSelectedIndexChanged="Index_Changed"
            AutoPostBack="true"
            runat="server"/>

       <br />

       <asp:Label id="Label1" runat="server"/>

    </form>

 </body>
 </html>
    

#3


DropDownList1.AutoPostBack = true;

#4


引用 3 楼 zmm12 的回复:
DropDownList1.AutoPostBack = true;

上面已经写了的。

#5


检查是否放了updatePanle

检查控件 F4  看事件里是否注册

 

#6


没有updatepanel

#7


谢谢各位,我找到问题所在了,原来控件是设置了AutoPostBack = true;但页面的AutoPostBack =false,所以导致不能触发。太不小心了,这问题困扰了我好久,非常感谢各位。

#8


把这个事件删除,重新添加一次:onselectedindexchanged="DropDownList1_SelectedIndexChanged"

#9


恩恩。基本上不能触发的话,都是autopostback这个家伙搞的鬼。
再就是page_load里面的ispostback。。

#1


从你帖的前台代码来看 没有问题

#2




<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

 <!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" >
 <script language="c#" runat="server">

    ICollection CreateDataSource() {
       DataTable dt = new DataTable();
       DataRow dr;

       dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
       dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
       dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
       dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
       dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));

       for (int i = 0; i < 9; i++) {
          dr = dt.NewRow();

          dr[0] = i;
          dr[1] = "Item " + i.ToString();
          dr[2] = DateTime.Now;
          dr[3] = (i % 2 != 0) ? true : false;
          dr[4] = 1.23 * (i+1);

          dt.Rows.Add(dr);
       }

       DataView dv = new DataView(dt);
       return dv;
    }

    void Page_Load(Object sender, EventArgs e) {
       if (!IsPostBack) {
          RadioButtonList1.DataSource = CreateDataSource();
          RadioButtonList1.DataTextField="StringValue";
          RadioButtonList1.DataValueField="CurrencyValue";
          RadioButtonList1.DataBind();
       }
    }

    void Index_Changed(Object sender, EventArgs e) {

       Label1.Text = "You selected " + RadioButtonList1.SelectedItem.Text +
                     " with a value of $" + RadioButtonList1.SelectedItem.Value +
                     ".";

    }

 </script>

 <head runat="server">
    <title>ASP.NET Example</title>
</head>
<body>

    <form id="form1" runat="server">

       <asp:RadioButtonList id="RadioButtonList1" 
            OnSelectedIndexChanged="Index_Changed"
            AutoPostBack="true"
            runat="server"/>

       <br />

       <asp:Label id="Label1" runat="server"/>

    </form>

 </body>
 </html>
    

#3


DropDownList1.AutoPostBack = true;

#4


引用 3 楼 zmm12 的回复:
DropDownList1.AutoPostBack = true;

上面已经写了的。

#5


检查是否放了updatePanle

检查控件 F4  看事件里是否注册

 

#6


没有updatepanel

#7


谢谢各位,我找到问题所在了,原来控件是设置了AutoPostBack = true;但页面的AutoPostBack =false,所以导致不能触发。太不小心了,这问题困扰了我好久,非常感谢各位。

#8


把这个事件删除,重新添加一次:onselectedindexchanged="DropDownList1_SelectedIndexChanged"

#9


恩恩。基本上不能触发的话,都是autopostback这个家伙搞的鬼。
再就是page_load里面的ispostback。。