ASP数据源和存储过程中的下拉列表填充不工作

本文关键字:下拉列表 填充 工作 过程中 数据源 存储 存储过程 ASP | 更新日期: 2023-09-27 18:03:54

如果在ASP页面中创建下拉列表和数据集(基于存储过程),则使用基于会话的参数
当会话变量被设置为在进程中返回结果的值并且调用databind()时,列表不应该填充吗?
还是有别的事要做?
我正在尝试像dataset.select()这样的事情,但想知道这是如何发生的。
都在页面加载中。如果我可能错过了一些明显的东西,请查看代码。

注意:我之所以在ASPx页面中创建数据源,而不是在代码隐藏中创建数据源,是因为我将创建很多数据源,这样更快,但也许这不是一个好方法。

ASP

 <asp:DropDownList ID="ddClinic" runat="server"OnSelectedIndexChanged=" 
      ddClinic_SelectedIndexChanged" AppendDataBoundItems="True" DataSourceID="dsClinics" 
      DataTextField="ClinicName" DataValueField="ClinicID" AutoPostBack="True">
      <asp:ListItem Value="0">Select One</asp:ListItem>
 </asp:DropDownList>
 <asp:SqlDataSource ID="dsClinics" runat="server" ConnectionString="
      <$ConnectionStrings:coPC3PaymentConnectionString %>" SelectCommand="GetClinicsForUser" 
      SelectCommandType="StoredProcedure">
        <SelectParameters>
            <asp:SessionParameter DbType="Int32" Name="userID" SessionField="Userid" 
              Type="Int32" />
            <asp:ControlParameter ControlID="LbMsg.Text" DbType="String" Direction="Output" 
                  Name="ErrorMsg" PropertyName="Text" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>

那么,在c#背后的代码不应该使它填充吗?(假设参数返回SP中的数据?

      Session["User"] = PC3User;
                Session["MultiClinics"] = 1;
                ddClinic.DataBind();

再次,抱歉愚蠢的问题,但我发现的所有例子都是在后台代码中创建的数据源。有这个必要吗?

ASP数据源和存储过程中的下拉列表填充不工作

我不认为问题可以从这个板中删除,但我不认为这个会帮助其他人,因为我发现我的问题很简单,与数据绑定无关-我只是通过错误的名称引用会话变量

Session["User"] vs  <asp:SessionParameter DbType="Int32" Name="user**ID**" 
如果你浪费了时间,我很抱歉,我会更小心的。这种情况在我身上发生过几次。我将检查所有字符串值,因为它们不会在构建中被捕获。