使用:asp.net和C#
我正在尝试使用SQL Server存储过程中的值填充组合框。我有组合框加载和工作,但我不知道如何使值显示为下拉列表供客户选择。 ListItem也是加载下拉菜单的正确方法吗?
这是我到目前为止所做的:
.aspx
页面:
<asp:ToolkitScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ComboBox ID="ComboBox1" runat="server" DataSourceID="SQL"
DataTextField="DataText" DataValueField="DataValue" MaxLength="0"
style="display: inline;">
<asp:ListItem Value="0">Please Choose an Item......</asp:ListItem>
//What do I put here to load and display the stored procedure in a list
</asp:ComboBox>
<asp:SqlDataSource ID="SQL1" runat="server"
ConnectionString="<%$ CompanyConnectionString %>"
SelectCommand="CompanyStoredProcedure" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="ParameterID" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:ToolkitScriptManager>
答案 0 :(得分:2)
您的<asp:Parameter Name="ParameterID" Type="Int32" />
未填入值,这就是您的ComboBox
未填充的原因。
你可以:
以编程方式填充后面的代码:
protected function Page_Load(object sender, EventArgs e)
{
SQL1.SelectParameters["ParameterID"].DefaultValue = 12;
ComboBox1.DataSource = SQL1.Select(DataSourceSelectArguments.Empty);
ComboBox1.DataBind();
}
或者您可以将其设为<asp:SessionParameter>
或<asp:ControlParameter Name="ParameterID" Type=Int32" ...
即将其链接到Session
值或Asp.NET Control
。