我的网页上有一个绑定到sqlDataSource的下拉列表。我们经常在数据库中添加/删除列的值。当我插入一个新值时,它应该立即出现在下拉列表中,一旦我从数据库中删除它而不使用刷新选项/ javascript的location.reload();同样的值应该从下拉列表中删除。我尝试了以下方法将值添加到下拉列表中。
pr1.aspx:
<asp:DropDownList ID="DropDownList1" runat="server" DataTextField="dropval" DataValueField="dropval" Height="31px">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:VBTestConnectionString %>" SelectCommand="SELECT [dropval] FROM [pbs]"></asp:SqlDataSource>
pr1.aspx.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection("Server=(local)\\SQLEXPRESS;Database=pbs;User Id=sa;Password=****;");
con.Open();
SqlCommand cmd = new SqlCommand("select dropval from pbs", con);
SqlDataAdapter dtAdapter = new SqlDataAdapter(cmd);
DataTable dt= new DataTable();
dtAdapter.Fill(dt);
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "dropval";
DropDownList1.DataValueField = "dropval";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new ListItem("select", "0"));
}
}
我没有遇到任何错误,但这不起作用。我在数据库中添加新值后无法将值添加到下拉列表中(刷新页面后能够看到)。我使用SQL Server Management Studio将值插入数据库。
答案 0 :(得分:0)
尝试调用以下代码
SqlConnection con = new SqlConnection("Server=(local)\\SQLEXPRESS;Database=pbs;User Id=sa;Password=****;");
con.Open();
SqlCommand cmd = new SqlCommand("select dropval from pbs", con);
SqlDataAdapter dtAdapter = new SqlDataAdapter(cmd);
DataTable dt= new DataTable();
dtAdapter.Fill(dt);
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "dropval";
DropDownList1.DataValueField = "dropval";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, new ListItem("select", "0"));
在event
处,您要向/ databse
添加/删除值。基本上,您必须将dropdown list
重新绑定到数据库中的最新值。