2016-01-06 77 views
-1

我有一個連接到數據源的DropDownList控件的問題。我想在編輯完整的formview時顯示選定的索引,但每次我嘗試編輯時,我都會得到表格的第一個索引...而選擇的索引是不同的..我嘗試使用selectparameters,但它也不起作用! 這是我的代碼。DropDownList datasource asp.net vb

<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> 
+0

嘗試將AutoPostBack =「false」添加到您的下拉列表控件中 – Khazratbek

+0

我還有一個問題:爲什麼要使用兩次InsertParameters? – Khazratbek

回答

0

我喜歡在代碼隱藏生成下拉列表:

設計頁面:

<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 
+0

我更喜歡這種方式,因爲你可能會操縱一切,因爲你需要 – Khazratbek

+0

嗯,這是一個更好的主意謝謝:) –

+0

@BishoyFrank歡迎您。希望能幫助到你 – Khazratbek