我有一个名为“usp_posts_getall”的StoredProcedure,它有一个名为“@thisCategoryID”的参数
在我的“thisCategoryID”中,除0(零)以外的任何值都将返回我的帖子表中的所有记录。
现在我有一个类别菜单项,每次选择时,我都会在我的会话名称中设置名为“SelectedCID”的值。
那么,我怎么...... 在SqlDataSource中以编程方式创建SessionParameter?
更新:
好。我现在就开始工作了。
答案 0 :(得分: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>