【发布时间】:2014-01-22 09:47:20
【问题描述】:
我的网页上有一个绑定到 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 将值插入到数据库中。
【问题讨论】:
-
为什么不将值添加到数据表中,然后再将其分配给下拉列表
-
我怎么能在这里做到这一点,我直接向数据库添加值而不使用任何代码。
-
DataRow 行 = dt.NewRow(); row["dropal"] = "select" dt.Rows.Add(row); DropDownList1.DataSource = dt; DropDownList1.DataBind();如果您想插入第一个位置,请使用 dt.Rows.InsertAt(row, 0);
-
以上是将字符串值("select" here)添加到列表中,而不是我添加到数据库表中的值。