【问题标题】:ASP.NET SqlDataSource set SessionParameter programmaticallyASP.NET SqlDataSource 以编程方式设置 SessionParameter
【发布时间】:2010-09-06 22:12:22
【问题描述】:

我有一个名为“usp_posts_getall”的 StoredProcedure,它有一个名为“@thisCategoryID”的参数

在我的“thisCategoryID”中,除 0(零)以外的任何值都将返回我的 Posts 表中的所有记录。

现在我有一个类别菜单项,每次选择时,我都会在我的会话名称中设置一个名为“SelectedCID”的值。

那么,我该如何... 在 SqlDataSource 中以编程方式创建 SessionParameter?


更新:
行。我现在开始工作了。

【问题讨论】:

    标签: asp.net sqldatasource


    【解决方案1】:

    如果是 SqlDataSource 使用的会话参数,则可以在会话中设置值,例如在Page_Load():

    Session["thisCategoryID"] = theCategoryId;
    

    (我是不是误解了这个问题?)

    好的,更新:

    我认为您可以为SqlDataSource.OnSelecting 事件创建一个事件处理程序。在该处理程序中,您可以访问数据源的Parameters 集合,并可以向其中添加另一个参数。我目前无法测试以下代码,所以它可能不完全正确,但我希望你能看到这个想法:

    SqlDataSource1_OnSelecting(SqlDataSourceSelectingEventArgs args)
    {
      var param = new Parameter("@thisCatagoryID");
      param.DefaultValue = Session["SelectedCID"]; 
      SqlDataSource1.SelectParameters.Add(param);  
    }
    

    或者,您可以在标记中以声明方式设置参数,例如:

    <asp:SqlDataSource ...>
      <SelectParameters>
        <asp:SessionParameter Name="thisCategoryID" SessionField="SelectedCID"
          DefaultValue="0" />
        ...
      </SelectParameters>
    </asp:SqlDataSource>
    

    【讨论】:

    • iiiiiiiyeah M4N :) 我要问的是如何以编程方式创建 SessionParamater。修改问题。
    猜你喜欢
    • 2011-02-27
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多