2

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

1 回答 1

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

于 2013-08-26T14:57:30.203 回答