下拉菜单C#Asp.Net中的索引未更改
我有一个从数据库中填写的下拉菜单C#Asp.Net中的索引未更改,c#,asp.net,indexing,drop-down-menu,C#,Asp.net,Indexing,Drop Down Menu,我有一个从数据库中填写的DropDownList。当我在索引1上选择一条记录时,它会得到正确的结果,但当我选择第二个索引时,它会得到相同的索引。默认情况下,DropDownList显示第一个索引。如何在DropDownList中选择更改索引? 因此,如果要选择索引3,结果必须来自索引3。 我尝试了DropDownList.SelectedItem,DropDownList.SelectedValue,DropDownList.SelectedIndex,DropDownList.Text,但似乎
DropDownList
。当我在索引1上选择一条记录时,它会得到正确的结果,但当我选择第二个索引时,它会得到相同的索引。默认情况下,DropDownList
显示第一个索引。如何在DropDownList
中选择更改索引?
因此,如果要选择索引3,结果必须来自索引3。
我尝试了DropDownList.SelectedItem
,DropDownList.SelectedValue
,DropDownList.SelectedIndex
,DropDownList.Text
,但似乎没有效果
在页面上加载下拉列表\u加载
public void load_Individual()
{
if (IsPostBack == false)
{
SqlDataAdapter sdaIndividual = new SqlDataAdapter("select * from tbl_trip", _connectionString);
DataTable dtIndividual = new DataTable();
sdaIndividual.Fill(dtIndividual);
if (dtIndividual.Rows.Count > 0)
{
ddl_Individual.DataTextField = "TruckNo";
ddl_Individual.DataValueField = "TruckNo";
ddl_Individual.DataSource = dtIndividual;
ddl_Individual.DataBind();
}
}
}
用于选择值的下拉列表
if (ddl_Individual.Text != string.Empty)
{
ddl_Individual.ClearSelection();
adp = new SqlDataAdapter(@"Select * , '' as c1, '' as c2, 0 as c3 , 0 as c4 , 0 as c5 , 0 as c6, 0 as c7 , 0 as c8 from tbl_Trip
where TruckNo='" + ddl_Individual.SelectedValue + "'", _connectionString);
adp.Fill(Dt);
Session["mydata"] = Dt;
Response.Redirect("LoadReport.aspx");
}
else
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"alertMessage","aler('select valid value')", true);
}
在您有机会读取用户选择的值之前,此行正在清除下拉列表中的选择。把它拿走,因为我觉得没有必要
确保通过检查回发来设置页面加载中的项目:
if(!IsPostBack)
{
// Perform binding
}
如果下拉菜单应触发回发,则确保将AutoPostBack=true代码>
另外,请研究使用参数化查询来帮助防止SQL注入攻击。无论应用程序的大小,这都是一个好习惯。我已经尝试过,但没有效果。请分享另一个解决方案。实际上,我的应用程序是一个小应用程序,不需要使用Sql注入。那么你想和我分享另一个选择吗?
if(!IsPostBack)
{
// Perform binding
}