【发布时间】:2014-12-10 10:44:31
【问题描述】:
我想在后面的代码中访问选定的行单元格 ID。我可以通过 Ajax 调用来做到这一点,但是当我尝试从 Jqgrid 子网格发送数据时这是不可能的。
下面是子网格代码:
subGridRowExpanded: function (subgrid_id, row_id) {
debugger;
var subgrid_table_id, pager_id; subgrid_table_id = subgrid_id + "_t";
var selected_row_id = $('#tblFormData').jqGrid('getCell', row_id, 'Category_Id')
// pager_id = "p_" + subgrid_table_id;
$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");
$("#" + subgrid_table_id).jqGrid({
// $("#tblTest").jqGrid({
url: "/Forms.aspx/GetFormsData", //?selected_row_id=" + selected_row_id,
data: '{"CategoryDesc":"' + selected_row_id + '"}',
datatype: "json",
contentType: "application/json; charset=utf-8",
loadonce: true,
width: "300",
height: "auto",
pager:"#tblSubpager",
colNames: ['FormName','FormPath'],
colModel: [
{ name: "FormName", index: "FormName", editable: true, formatter: 'showlink' },
//{ name: "FormPath", index: "FormPath", editable: true, hidden: true },
{
name: 'FormPath',
index: 'FormPath',
hidden: true,
enctype: "multipart/form-data",
editable: true,
edittype: 'file',
editrules: {
edithidden: true,
required: true
},
formoptions: {
elmsuffix: '*'
}
}
],
gridview: true,
autoencode: true,
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
serializeGridData: function (postData) {
return JSON.stringify(postData);
},
jsonReader: {
root: function (obj) { return obj.d; },
page: function (obj) { return 1; },
total: function (obj) { return 1; },
records: function (obj) { return obj.d.length; }
}
});
下面是我从 Vb.NET 中的 URL 调用它的函数。
<WebMethod> _
<ScriptMethod(UseHttpGet:=True, ResponseFormat:=ResponseFormat.Json)> _
Public Shared Function GetFormsData(CategoryId As String) As List(Of Dictionary(Of String, String))
Using dt As DataTable = DirectCast(DataAccess.ExecuteStoredProcedure("AFI_DYNAMIC", "Ashley.dbo.usp_GetDownloadFormsDetails", DataAccess.StoredProcedureReturnType.DataTable), DataTable)
Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
Dim rows1 As New List(Of Dictionary(Of String, String))()
Dim rows As New List(Of Dictionary(Of String, Object))()
Dim row As Dictionary(Of String, Object)
Dim row1 As Dictionary(Of String, String)
For Each dr As DataRow In dt.Rows
row = New Dictionary(Of String, Object)()
row1 = New Dictionary(Of String, String)()
For Each col As DataColumn In dt.Columns
row.Add(col.ColumnName, dr(col))
'string sb = "<a href=\"http://www.yahoo.com\" title=\"Yahoo!\">Yahoo!</a>";
Next
rows.Add(row)
'For i As Integer = 0 To dt.Columns.Count - 1
Dim sb As String = "<a href=" & """" & dr("FormPath").ToString() & """" & ">" & dr("FormName").ToString() & "</a>"
'Next
row1.Add(dt.Columns(0).Caption, sb)
rows1.Add(row1)
Next
Return rows1
End Using
End Function
现在我想在后面的代码中访问 CategoryId 有人可以帮我解决这个问题吗?
【问题讨论】:
-
嗨@Oleg,我在最后提到了很多例子,我很困惑,没有任何帮助。我看到您提到使用 postData 进行 jqgrid 调用。但没有任何结果。你能帮我解决这个问题吗?