c# - 通过jquery检索repeateritem
问题描述
我想通过jquery将repeateritem检索到我在codebehind上的saveorder函数
这是我的jQuery代码:
function saveOrder(controlid) {
var id = controlid.name.replace("$btnSave", "");
console.log(id)
$.ajax({
type: "POST",
url: '/mobile/Default.aspx/saveOrder',
data: '{par:"' + id + '"}',
contentType: "application/json; charset=utf-8",
success: function (data) {
console.log(data.d);
},
failure: function (response) {
console.log(response.d);
alert(response.d);
}
});
}
这是我的代码隐藏代码:
[WebMethod]
public static void saveOrder(string par)
{
mobile_Menu m = new mobile_Menu();
RepeaterItem row = (RepeaterItem)m.FindControl(par);
RadioButtonList rdblExtraSauce = (RadioButtonList)row.FindControl("rdblExtraSauce");
CheckBoxList chkExtras = (CheckBoxList)row.FindControl("chkExtras");
CheckBoxList chklExtraDrink = (CheckBoxList)row.FindControl("chklExtraDrink");
RadioButtonList rdblExtraOption = (RadioButtonList)row.FindControl("rdblExtraOption");
RadioButtonList rdblSauce = (RadioButtonList)row.FindControl("rdblSauce");
CheckBoxList chkGarnish = (CheckBoxList)row.FindControl("chkGarnish");
List<ListItem> emptyList = new List<ListItem>();
HiddenField hfProductId = (HiddenField)row.FindControl("hfProductId");
string rdlPriceId = ((RadioButtonList)row.FindControl("rdblSize")).SelectedValue.Split(',')[0];
HiddenField hfMainProductId = (HiddenField)row.FindControl("hfMainProductId");
//Get previous values
if (m.Session["Cart"] != null)
{
m.values = (List<Order>)m.Session["Cart"];
}
if (chklExtraDrink.Items.Count > 0)
{
foreach (ListItem item in chklExtraDrink.Items)
if (item.Selected) m.values.Add(new Order(item.Value.Split(',')[0], item.Value.Split(',')[1], emptyList, 1));
}
if (rdblExtraSauce.Items.Count > 0)
{
if (rdblExtraSauce.SelectedValue != "Geen saus")
{
m.values.Add(new Order(rdblExtraSauce.SelectedValue.Split(',')[0], rdblExtraSauce.SelectedValue.Split(',')[1], emptyList, 1));
}
}
switch (Convert.ToInt32(hfMainProductId.Value))
{
case 16:
m.values.Add(new Order(hfProductId.Value, rdlPriceId, m.addMultiChoice(chkGarnish), 1));
break;
case 17:
//values.Add(new Order(hfProductId.Value, rdlPrice, rdblSauce.SelectedItem, addMultiChoice(chkExtras), 1)); ;
m.values.Add(new Order(hfProductId.Value, rdlPriceId, rdblSauce.SelectedItem, m.addMultiChoice(chkExtras), 1, rdblExtraOption.SelectedItem));
break;
case 19:
m.values.Add(new Order(hfProductId.Value, rdlPriceId, rdblSauce.SelectedItem, m.addMultiChoice(chkExtras), 1));
break;
case 20:
m.values.Add(new Order(hfProductId.Value, rdlPriceId, rdblSauce.SelectedItem, m.addMultiChoice(chkExtras), 1)); ;
break;
case 21:
m.values.Add(new Order(hfProductId.Value, rdlPriceId, rdblSauce.SelectedItem, 1));
break;
case 22:
m.values.Add(new Order(hfProductId.Value, rdlPriceId, rdblSauce.SelectedItem, m.addMultiChoice(chkExtras), 1));
break;
default:
m.values.Add(new Order(hfProductId.Value, rdlPriceId, m.addMultiChoice(chkGarnish), 1));
break;
}
//Save updated list
m.Session["Cart"] = m.values;
if (m.Session["Cart"] != null)
{
m.btnOrder.Text = "Winkelmandje (€ " + Global.CalcTotPrice(m.values) + ")";
}
}
我不确定我是否以正确的方式做这件事,我也是 jquery 的新手。使用此代码,我得到了 NullReferenceException。repeaterItem 的 uniqueID 通过参数成功传递,但转换为 RepeaterItem 失败。
更多信息:我有一个嵌套的中继器(总共 2 个),我想要第二个中继器的 RepeaterItem
解决方案
推荐阅读
- python - 带同步代码的 asyncio
- c# - 实体框架核心导航属性错误
- rxjs - 使用 debounceTime 在 Angular 6 中更改来自多个范围输入的值
- android - 通过 okhttp 向服务器发送文件
- javascript - 从 JSON (javascript) 中提取数组元素
- arrays - 使用 .length 返回不正确的元素数量
- c# - WPF Socket客户端结构
- javascript - 在 Array Javascript 中插入或更新对象
- charts - 如何在不使用 getImageURI() 的情况下将 Google 条形图另存为图像,因为这不适用于“包”:['bar']
- docker - 与 ENTRYPOINT 相反的命令