Как сохранить выбранный исходный текст DropDownList во время обратной публикации и создания динамических веб-элементов управления
Я могу создать несколько динамических веб-элементов управления на основе DropDownList_SelectedValue.
Проблема состоит в том, что выбранный входной текст не сохраняется в основном DropDownList, но после обратной передачи он выбирает текст, который является первым в списке индекса, подобном типу данных исходного выбранного значения.
DropDownList с привязкой к данным:
COLUMN_NAME DATA_TYPE
a decimal
b decimal
c decimal
d int
e int
f varchar
g varchar
h varchar
i varchar
j varchar
Если я выберу j из My DropDownList после обратной записи, он сохранит g в качестве входного текста DDL. Как сохранить себя после постбэка.
Aspx код:
<asp:DropDownList ID="DropDownList5" runat="server" DataSourceID="column_list_for_filter" DataTextField="COLUMN_NAME" DataValueField="DATA_TYPE" OnSelectedIndexChanged ="DropDownList5_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
<asp:SqlDataSource ID="column_list_for_filter" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>" SelectCommand="SELECT COLUMN_NAME AS 'All_Columns', DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME = 'RESULT')"></asp:SqlDataSource>
Код C#:
private void BindDropDownLists()
{
foreach (Control ctl in DynamicPanel.Controls)
{
if (ctl is DropDownList)
{
(ctl as DropDownList).DataBind();
}
}
}
protected void Page_PreInit(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindDropDownLists();
}
else
{
createdynamiccontrols_decimal();
}
if (DropDownList5.SelectedValue == "decimal")
{
createdynamiccontrols_decimal();
}
if (DropDownList5.SelectedValue == "varchar")
{
createdynamiccontrols_varchar();
}
}
protected void DropDownList5_SelectedIndexChanged(object sender, EventArgs e)
{
//How to Proceed
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//How to Proceed
}
}
1 ответ
Попробуй это:
protected void DropDownList5_SelectedIndexChanged(object sender, EventArgs e)
{
Session["DDLValue"] = dropdownlist.SelectedValue;
}
При загрузке страницы получите сеанс и установите его в раскрывающемся списке, если он не равен NULL:
if(Session["DDLValue"] != null)
{
dropdownlist.SelectedValue = Session["DDLValue"].ToString();
}
Надеюсь, поможет!