【问题标题】:Dropdownlist population from ASP datasource and stored procedure not working来自 ASP 数据源的下拉列表填充和存储过程不起作用
【发布时间】:2013-03-02 10:59:22
【问题描述】:

如果在 ASP 页面中创建下拉列表和数据集(基于存储过程),则使用基于会话的参数。
当会话变量设置为在 proc 中返回结果的值并且调用 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>

那么,在 Codebehind C# 中,这不应该让它填充吗? (假设参数在SP中返回数据?

      Session["User"] = PC3User;

                Session["MultiClinics"] = 1;

                ddClinic.DataBind();

再次,对于愚蠢的问题,我很抱歉,但我发现的所有示例都是在代码隐藏中创建的数据源。有必要吗?

【问题讨论】:

    标签: c# asp.net stored-procedures data-binding dataset


    【解决方案1】:

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

    Session["User"] vs  <asp:SessionParameter DbType="Int32" Name="user**ID**" 
    

    如果您浪费了时间,我深表歉意,我会更加小心。这在我身上发生了几次。我将检查所有字符串值,因为它们不会在构建中被捕获。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-25
      • 2023-03-19
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多