获取行ID然后将其存储在会话中?

时间:2013-04-14 14:46:28

标签: c# asp.net session jqgrid

我在使用JQGRID时遇到问题。

如何获取jqgrid的行号然后
将其存储在会话中。

任何人都可以帮我吗?
我真的不知道我将如何开始创建它。
我是使用JQGrid和会话的新手

谢谢你

这是我的代码。

function beforeSelect(rowid, e) {
                grid = $("#<%= jqgrid.ClientID %>");
                ItemID = grid.jqGrid('getCell', rowid, 'ItemID');
                var sessionItemID = '<%=Session["ItemID"] %>';
}

2 个答案:

答案 0 :(得分:0)

如果您的rownumber与rowid不同,您可以包含一个额外的字段来存储行号(就像您在代码中使用itemId一样)。否则,您将需要遍历网格以搜索特定的rowid并使用计数器来获取rownumber:

function getRowNumber(rowId) {


            var rownumber= 0;
            $('#gridId tbody tr').each(function (i, n) {
                var $row = $(n);

                    if($row.find('td:eq(0)').text()==rowId)//Assuming rowid is the first column of jqgrid(index=0). Otherwise change the index appropriately

                    { rownumber=i; }

            });
           return rownumber;
        }

答案 1 :(得分:0)

会话在服务器上可用,而jQGrid在客户端上运行。这意味着您无法使用Javascript直接影响会话。

可以做的是创建一个Ajax请求回服务器并告诉C#您在会话中想要什么。

在您的C#页面中......

protected void Page_Load(object sender, EventArgs e) {
    Session["Id"] = Request.Querystring["Id"];
}

然后在您拥有Id ...

后在您的javascript中执行此操作
$.ajax({
    url: "/Path/To/SetSession.aspx",
    data: {"Id": ItemID},
    success: function(){
        alert('Stored Ok');
    },
    error: function() {
        alert('Something went wrong - check the C# page for errors and check for network issues');
    }
});

这是一个绝对最小的例子 - 您希望在PHP中进行适当的错误处理,确保会话存在等等......