如何在窗口中加载Kendo网格并将隐藏字段用作参数值

时间:2019-07-15 21:18:50

标签: .net-core kendo-grid

我有一个index.cshtml,它加载了代理机构网格。 单击网格中的自定义按钮将打开一个窗口,并在局部视图中为选定代理商加载BillingRates网格。 我从“代理商”网格中读取了两个参数,并希望将其用于BillingRates网格的数据源参数。

做到这一点的最佳方法是什么? 我在index.cshtml上有两个隐藏的字段,用于存储从代理机构网格读取的两个参数。 javascript警报告诉我这些值正确,但是隐藏的字段虽然在那里并且它们的值被发布,但它们的出现是“未定义的”-我将字段更改为文本框而不是隐藏以证明这一点。

这是我的代码: index.cshtml上的隐藏字段(此处显示文本进行测试)

<input type="text" value="" name="pidForBillingRates" />
<input type="text" value="" name="aidForBillingRates" />

自定义按钮单击事件:

function ShowManageBillingRatesWindow_Click(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
var pid = dataItem.Provider;
var aid = dataItem.AgencyId;
$("#pidForBillingRates").val(pid);
$("#aidForBillingRates").val(aid);
alert("pidForBillingRates = " + $("#pidForBillingRates"));
alert("pidForBillingRates.val() = " +     
$("#pidForBillingRates").attr('value'));
alert("aidForBillingRates.val() = " +
$("#aidForBillingRates").attr('value'));
alert("pid = " + pid + " and aid = " + aid);

$('#manageBillingRatesWindow').load('@Url.Action("AgencyBillingRateView",    
"AgencyBillingRate")' + "?providerId=" + pid + "&agencyId=" + aid);
var window = $("#manageBillingRatesWindow").data("kendoWindow");
window.center().open();
}

第一个警报:

alert("pidForBillingRates = " + $("#pidForBillingRates"));

返回:     {object object} 所以我知道它找到了文本框。

第二个警报:

alert("pidForBillingRates.val() = " +     
$("#pidForBillingRates").attr('value'));

返回“无法读取未定义的值。”

第三个警报:

alert("aidForBillingRates.val() = " +
$("#aidForBillingRates").attr('value'));

返回“无法读取未定义的值。”

第四次警报”

alert("pid = " + pid + " and aid = " + aid);

返回正确的pid和aid值。

我尝试将隐藏字段(用于测试的文本框字段)放在index.cshtml上,然后放在BillingRates局部视图上,但仍然得到相同的未定义消息。

因此,网格不会加载任何数据,因为它没有在它使用的过滤器中检索两个必需的参数。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我怀疑“它找到了文本框” pidForBillingRates。哈希符号告诉jQuery搜索ID为“ pidForBillingRates”的元素。您想要的是搜索具有属性name和属性值“ pidForBillingRates”的元素。因此$("input[name='pidForBillingRates']")应该为您提供正确的元素。

有关jQuery中所有受支持的选择器,请参见https://api.jquery.com/category/selectors/