如何使用SQL Server存储过程填充组合框

时间:2013-08-26 14:46:39

标签: c# asp.net sql sql-server stored-procedures

使用: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>

1 个答案:

答案 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