在Gridview中的下拉列表绑定期间,DropDownList selectedindexchanged未在默认选定项上触发

时间:2014-09-20 04:52:16

标签: c# asp.net gridview

我有一个带有下拉列表的Gridview是在gridview的OnRowDataBound事件中动态创建的,最初我正在设置一个选定的值。

问题是,当我切换到不同的下拉列表时,它工作正常,但是当我更改为默认选择的索引时,不会触发SelectedIndexChanged。

请帮帮我......

protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
 DropDownList DropDownList1 = new DropDownList();
                    DropDownList1.ID = "DropDownList1";
                    DropDownList1.SelectedIndexChanged += new EventHandler(DropDownList1_SelectedIndexChanged);
                    DropDownList1.EnableViewState = true;
                    DropDownList1.AutoPostBack = true;
                    DropDownList1.EnableViewState = true;
                    string sql1 = ".....";
                    DataTable dtDDL = new DataTable();
                    dtDDL = SQL.ReturnDataTable(sql1);
                    if (dtDDL.Rows.Count > 0)
                    {
                        DropDownList1.DataSource = dtDDL;
                        DropDownList1.DataTextField = "CODE";
                        DropDownList1.DataValueField = "CODE";
                        DropDownList1.DataBind();
                        DropDownList1.Font.Size = 8;
                        //DropDownList1.Items.Insert(0, new ListItem("0", "0"));
                    }

                        DropDownList1.SelectedValue = dtShift.Rows[0]["SHIFT_CODE"].ToString();
                        DropDownList1.ToolTip = dtShift.Rows[0]["ShiftTime"].ToString();
                  }






  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
       //not coming here for default index changed
    }

2 个答案:

答案 0 :(得分:2)

AutoPostBack="true"并尝试

<asp:DropDownList ID="Drplist1" AutoPostBack="true" runat="server" OnSelectedIndexChanged="Drplist1_SelectedIndexChanged"></asp:DropDownList>

答案 1 :(得分:0)

当列表中有多个具有相同值的值时,我也注意到了这种行为。  因此,您可以使用永远不会相同的序列号代替值代码。

因此,例如

如果所选索引值为&#34; X&#34;并且下一个选定的值也是&#34; X&#34;然后它可能不会打电话。