提问人:simo 提问时间:8/12/2023 最后编辑:simo 更新时间:8/16/2023 访问量:35
会话值在 DetailsView 的 SqlDataSource 的 SelectCommand 中不起作用
Session value not working in SelectCommand of SqlDataSource for DetailsView
问:
我在 .net 中有一个 Web 应用程序并使用 DetailsView。 im 使用 SqlDataSource 控制此 DetailsView。我用jQuery设置了一个会话。
<script >
var baseUrl = (window.location).href;
var clubid = baseUrl.substring(baseUrl.lastIndexOf('=') + 1);
sessionStorage.setItem("se", "13801");
var ses = sessionStorage.getItem("se");
</script>
DetailsView 字段:
<Fields>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="name" HeaderText="name"
SortExpression="name" />
<asp:BoundField DataField="saltasis" HeaderText="saltasis" SortExpression="saltasis" />
<asp:CommandField />
<asp:CommandField ShowEditButton="True" />
<asp:CommandField ShowInsertButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Fields>
和 SQLDATASOURCEID :
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:sina1ConnectionString %>"
SelectCommand="SELECT * FROM [club] WHERE saltasis = @saltasis">
<SelectParameters>
<asp:SessionParameter Name="?" SessionField="?" Type="string" />
</SelectParameters>
</asp:SqlDataSource>
如何在 DetailsView 的 SqlDataSource 的 SelectCommand 中使用会话作为值。
答:
0赞
mehdi Rahimy
8/12/2023
#1
使用 javascript 将会话值存储在隐藏字段中。注意,如果使用母版页,隐藏字段的名称如下:
document.getElementById('ContentPlaceHolder1_hiddenfield1').value = "session_value";
然后,您可以使用隐藏字段中存储的会话值
0赞
srame
8/12/2023
#2
嗨,在您的示例中,我只向您展示了将会话值保存在您的内部,但您没有在 html 表单或 ajax 中作为 POST 或 GET 过去。因此,您需要在控制器中捕获 URL:例如,此 URL https://domain.eg/ControllerName/ActionName?se=13801sessionStorage
(window.location).href
[httpGet]
public void ActionName(string se)
{
var sessionParams = se;
-- do what you want with that...
}
评论
0赞
simo
8/13/2023
我如何将此源视为选择命令?
0赞
srame
8/13/2023
过去你可以做这个 Request.QueryString['se'] 看看这个 stackoverflow.com/questions/13732975/...
评论