C# 如何在回发之前存储值
我有两个下拉列表,ddlstates和ddlcity ddlstates有一个巴西州列表,单击该列表时,会将该州的城市加载到DDLCITY。在此之前,一切都正常工作,但当单击“保存”按钮以验证是否已完成字段时,DDLCITY返回到第一个选项。回发前如何存储信息 在代码隐藏中,具有加载DDLCITY的代码:C# 如何在回发之前存储值,c#,asp.net,C#,Asp.net,我有两个下拉列表,ddlstates和ddlcity ddlstates有一个巴西州列表,单击该列表时,会将该州的城市加载到DDLCITY。在此之前,一切都正常工作,但当单击“保存”按钮以验证是否已完成字段时,DDLCITY返回到第一个选项。回发前如何存储信息 在代码隐藏中,具有加载DDLCITY的代码: protected void ddlstates_TextChanged(object sender, EventArgs e) { if (ddlstates.Text != "")
protected void ddlstates_TextChanged(object sender, EventArgs e)
{
if (ddlstates.Text != "")
{
List<ListItem> cidades = new List<ListItem>();
SqlConnection conn = new SqlConnection(mytools.stringconection);
SqlDataReader dr = null;
conn.Open();
SqlCommand cmd = new SqlCommand("select ciddesc from cidades where cidestsigla = '" + ddlstates.SelectedValue.ToString() + "' order by 1 asc");
cmd.Connection = conn;
dr = cmd.ExecuteReader();
ddlcitys.Items.Clear();
while (dr.Read())
{
cidades.Add(new ListItem(dr[0].ToString()));
}
dr.Close();
conn.Close();
ddlcitys.DataTextField = "Text";
ddlcitys.DataValueField = "Value";
ddlcitys.DataSource = cidades;
ddlcitys.DataBind();
}
}
protectedvoidddlstates\u text已更改(对象发送方,事件参数e)
{
如果(ddlstates.Text!=“”)
{
List cidades=新列表();
SqlConnection conn=新的SqlConnection(mytools.stringconconnection);
SqlDataReader dr=null;
conn.Open();
SqlCommand cmd=new SqlCommand(“从CIDDES中选择ciddesc,其中cidestsigla='”+DDLSATES.SelectedValue.ToString()+“'order by 1 asc”);
cmd.Connection=conn;
dr=cmd.ExecuteReader();
ddlcity.Items.Clear();
while(dr.Read())
{
添加(新列表项(dr[0].ToString());
}
Close博士();
康涅狄格州关闭();
ddlcitys.DataTextField=“Text”;
ddlcity.DataValueField=“Value”;
ddlcitys.DataSource=cidades;
ddlcity.DataBind();
}
}
很久以前有人问过,不管怎样,这个答案对任何人都有帮助
在绑定任何dropdownlists之前,在页面加载事件上,确保不回发,然后在下拉列表上选择change events,下拉列表值不会重新绑定,因此值不会更改
提示:确保您的aspx页面处于启用视图状态(默认情况下已启用)
如果页面没有从
回发返回,只需将结果绑定到下拉列表
<代码>如果(ddlstates.Text!=“&&&!IsPostBack())
我希望这只是您的代码示例。否则,请不要忘记使用参数化查询:
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
//this will called when your page loaded at first time, so bind your drop down values here.
} else {
//this will called on select change, don't bind your dropdown again, then values will be same (asp.net web forms viewstates will handle read more about viewstate).
}
}