【问题标题】:DropDownList datasource asp.net vbDropDownList 数据源 asp.net vb
【发布时间】:2016-01-06 08:27:42
【问题描述】:

我遇到了连接到数据源的 DropDownList 控件的问题。我想在编辑完整的表单视图时显示选定的索引,但是每次我尝试编辑时,我都会得到表的第一个索引......虽然选择的索引不同..我尝试使用选择参数,但它也不行! 这是我的代码。

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="DDListDataSource" DataTextField="GradeGroupName" DataValueField="GradeGroupName" Height="18px" Width="164px" >
</asp:DropDownList>
<asp:SqlDataSource ID="DDListDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:Dev201601ConnectionString %>"
     InsertCommand="INSERT INTO GradeGroups(GradeGroup) VALUES (@GradeGroup)"
     SelectCommand="SELECT GradeGroupName FROM GradeGroups"
     UpdateCommand="UPDATE GradeGroups SET GradeGroupName = @GradeGroup, GradeGroup = @GradeGroup WHERE (GradeGroup = @Original_GradeGroup)">
    <InsertParameters>
         <asp:Parameter Name="GradeGroup"></asp:Parameter>
    </InsertParameters>
    <SelectParameters>
          <asp:ControlParameter ControlID="DropDownList1" Name="GradeGroupName" PropertyName="SelectedValue" Type="String" />
    </SelectParameters>
    <InsertParameters>
        <asp:Parameter Name="GradeGroupName" />
        <asp:Parameter Name="GradeGroup" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="GradeGroup" />
        <asp:Parameter Name="Original_GradeGroup" />
    </UpdateParameters>
</asp:SqlDataSource>

【问题讨论】:

  • 尝试将 AutoPostBack = "false" 添加到您的下拉列表控件中
  • 还有一个问题:你为什么要使用两次 InsertParameters?

标签: asp.net vb.net gridview formview


【解决方案1】:

我喜欢在代码隐藏中生成下拉列表:

设计页面:

<asp:DropDownList ID="ddlItems" runat="server" />

C# 中的代码隐藏:

SqlConnection con = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand("select * from table_name", con);

try
{
    con.Open();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    sda.Fill(ds);
    ddlItems.DataSource = ds;
    ddlItems.DataTextField = "Name";
    ddlItems.DataValueField = "ID";
    ddlItems.DataBind();
}
catch (Exception ex)
{
    //...
}
finally
{
    con.Close();
}

VB.NET 中的代码隐藏:

Dim con As New SqlClient.SqlConnection(conStr)
Dim cmd As New SqlClient.SqlCommand("SELECT * FROM Table_Name", con)

Try
   con.Open()
   Dim sda As New SqlDataAdapter(cmd)
   Dim ds As New DataSet()
   sda.Fill(ds)
   ddlItems.DataSource = ds
   ddlItems.DataTextField = "Name"
   ddlItems.DataValueField = "ID"
   ddlItems.DataBind()
   con.Close()
Catch ex As Exception
   '....
End Try

【讨论】:

  • 我更喜欢这种方式,因为你可以随心所欲地操纵一切
  • 嗯,这是一个更好的主意,谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 2019-03-09
  • 2010-09-26
  • 2011-09-11
相关资源
最近更新 更多