Передача DataValueField вложенного выпадающего списка в команду обновления SQL
У меня есть динамический выпадающий список, вложенный в режиме редактирования FormView. Пользователь может выбрать значение из DDL и нажать кнопку "Обновить", чтобы обновить строку в базе данных.
<EditItemTemplate>
<asp:DropDownList ID="priorityLanguage_DDL" runat="server" DataSourceID="SqlDataSource_Languages" DataTextField="language" DataValueField="ID_language" selectedvalue='<%# Eval("priorityLanguage") %>'>
</asp:DropDownList>
<asp:LinkButton class="btn btn-default" ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Update" Text="Update" onclick="UpdateButton_click"/>
</EditItemTemplate>
<asp:SqlDataSource ID="SqlDataSource_membersDetails" runat="server"
ConnectionString="<%$ ConnectionStrings:DefaultConnection %>"
SelectCommand="SELECT * FROM [editorDetail] WHERE [IDuser]= @IDowner"
UpdateCommand="UPDATE [priorityLanguage] = @priorityLanguage_ddl_par WHERE [ID_editorDetail] = @ID_editorDetail">
<UpdateParameters>
<asp:Parameter Name="priorityLanguage_ddl_par" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
Мой вопрос заключается в том, как я могу передать DataValueField DDL в команду обновления. Я попытался передать значение непосредственно на страницу содержимого, но не смог, потому что DDL вложен в FormView, поэтому controlID не может быть скрытым.
Я также попробовал код, но мне не удалось передать int32 параметру DefaultValue.
protected void UpdateButton_click(object sender, EventArgs e)
{
DropDownList priorityLanguage_DDL = FormView3.FindControl("priorityLanguage_DDL") as DropDownList;
SqlDataSource_membersDetails.UpdateParameters["priorityLanguage_ddl_par"].DefaultValue = (priorityLanguage_DDL.DataValueField);
}
ЧТО Я ДЕЛАЮ НЕПРАВИЛЬНО???
1 ответ
Вам нужен dropdownlist.SelectedValue или dropdownlist.SelectedItem.Value вместо priorityLanguage_DDL.DataValueField
DataValueField используется для назначения имени столбца источника данных полю DataValue. Это даст вам имя столбца, но значение этого столбца для выбранного элемента из выпадающего списка.