【发布时间】:2014-06-21 07:25:10
【问题描述】:
我能够基于 DropDownList_SelectedValue 生成一些动态 Web 控件。
问题是选择的输入文本没有保留在主 DropDownList 中,但在回发后,它会选择索引列表中的第一个文本,类似于初始选定值的数据类型。
Databounded 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
如果我在回发后从 My DropDownList 中选择 j,它将保留 g 作为我的 DDL 输入文本。回发后如何保留 j 本身。
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
}
}
【问题讨论】:
-
尝试将选定的值设置为会话。回发时,使用创建的会话设置选定的值。
标签: c# asp.net drop-down-menu web-controls servercontrols