В edittemplate gridview у меня есть раскрывающийся список, который предоставит список значений, когда вы нажимаете кнопку редактирования каждой строки gridview.Как получить значение выпадающего списка сетки?
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack=false OnLoad="DropDownList1_onload"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
</EditItemTemplate>
C#
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
GridViewRow row = (GridViewRow)ddl.Parent.Parent;
int idx = row.RowIndex;
DropDownList txtECustCode = (DropDownList)row.Cells[0].FindControl("DropDownList1");
string _text1 = txtECustCode.selectedvalue();
}
protected void DropDownList1_onload(object sender, EventArgs e)
{
SqlConnection cn = new System.Data.SqlClient.SqlConnection("Data Source=CHANGEME1;Initial Catalog=Reflection;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select salary from employee", cn);
DataSet ds = new DataSet();
var ddl = (DropDownList)sender;
da.Fill(ds);
cn.Close();
ddl.DataSource = ds;
ddl.DataTextField = "salary";
ddl.DataValueField = "salary";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("--Select--", "0"));
}
так, когда я нажимаю на кнопку редактирования событие OnLoad уволят и список вниз данных из базы данных. когда я выбираю элемент раскрывающегося списка, мне нужно получить доступ к выпадающему списку.
Но всякий раз, когда я изменил выпадающий список, прежде чем SelectedIndexChanged функцию OnLoad вызывается снова, который INTURN обновить содержание и вернуть SelectedIndex как 0.
как я могу предотвратить это?
Не обращайте внимания на неправильный код. – JNYRanger
Событие 'SelectedIndexChanged 'запускается одновременно с обновлением, например, во время выбора? – JNYRanger
Нет, когда я выбираю элемент и нажимаю кнопку обновления, это событие будет запущено. –