【发布时间】:2014-06-18 19:25:45
【问题描述】:
我有一个 DropDownList 与 SqlDatasource 中的项目列表绑定。 DropDownList 中的项目列表基于以下查询有界
从 INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME) 中选择 COLUMN_NAMES = '结果')
我的要求:如何为那些 DropDownList 项目分配多个数据类型,即项目列表中的少数索引应分组为十进制数据类型,少数索引应分组为 Varchar ,日期时间数据类型。
我想根据 DDL 输入的数据类型和相应的 DropDownList_SelectedIndexChanged() 生成动态 Web 控件。 我的 SQL 查询:
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='RESULT' group by DATA_TYPE,COLUMN_NAME
输出:
COLUMN_NAME DATA_TYPE
a decimal
b decimal
c decimal
d int
e int
f varchar
g varchar
h varchar
i varchar
j varchar
如果从 DDL 中选择 a、b 或 c,我需要为 Decimal 数据类型 SelectedIndexValue 生成唯一的动态 Web 控件。
如何进行?
我的aspx代码:
<asp:Panel ID="Panel5" runat="server" Height="221px">
<span style="font-size: 135%; font-family: Verdana; font-weight: bold"> Search Functionalities </span>
<asp:DropDownList ID="DropDownList5" runat="server" DataSourceID="column_list_for_filter" DataTextField="All_Columns" DataValueField="All_Columns" OnSelectedIndexChanged ="DropDownList5_SelectedIndexChanged" AutoPostBack="true">
</asp:DropDownList>
<asp:SqlDataSource ID="column_list_for_filter" runat="server" ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>" SelectCommand="SELECT COLUMN_NAME 'All_Columns' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='RESULT' "></asp:SqlDataSource>
<asp:Button ID="Button1" runat="server" Font-Bold="True" Font-Names="Arial" Font-Size="Small" OnClick="Button1_Click" Text="Search Flow Periods" Width="144px" />
<asp:Table ID="dynamic_filter_table" runat="server" ToolTip="Results">
</asp:Table>
</asp:Panel>
C#代码:
protected void DropDownList5_SelectedIndexChanged(object sender, EventArgs e)
{
if(DropDownList5.SelectedIndex.Equals(typeof(Decimal)))
{
createdynamiccontrols();
}
else if (DropDownList5.SelectedIndex.Equals(typeof(DateTime)))
{
//Create Unique Web Controls
}
else if (DropDownList5.SelectedIndex.Equals(typeof(Char)))
{
//Create Unique Web Controls
}
}
【问题讨论】:
-
恕我直言,您需要像这样连接 2 列 - SELECT COLUMN_NAME + ' - ' + DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Result' 然后将其绑定到您的下拉列表。然后在 SelectedIndexChanged 事件中,您需要使用 substring 函数。如果您有任何困惑,请告诉我...
-
@KrishnrajRana 你能帮忙解决这个问题吗stackoverflow.com/questions/23535042/…
标签: c# asp.net sql-server servercontrols