将JavaScript函数值转发到C
我需要将JavaScript函数中的值传递给C 基本上,我从GridView中的列中获取值,需要通过单击按钮将它们传递给c 这是从以下两列获取值的JavaScript代码:将JavaScript函数值转发到C,javascript,c#,webforms,Javascript,C#,Webforms,我需要将JavaScript函数中的值传递给C 基本上,我从GridView中的列中获取值,需要通过单击按钮将它们传递给c 这是从以下两列获取值的JavaScript代码: var myCollection = []; $('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function () { var row = th
var myCollection = [];
$('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function () {
var row = this;
var myObj = {
label: valuefromType($(row).find($(row).find('td:eq(1)').children())),
opis:valuefromType($(row).find($(row).find('td:eq(2)').children()))
};
myCollection[myCollection.length] = myObj;
});
function valuefromType(control) {
var type = $(control).prop('nodeName').toLowerCase();
switch (type) {
case "input":
return $(control).val();
break;
case "span":
return $(control).text();
break;
case "select":
return $(control).val();
break;
}
}
职能:
function updateArray() {
alert('Snimljeno!');
var myCollection = [];
$('#MainContent_gvKarakteristike tbody').find('tr:gt(0)').each(function () {
var row = this;
var myObj = {
label: valuefromType($(row).find($(row).find('td:eq(1)').children())),
opis: valuefromType($(row).find($(row).find('td:eq(2)').children()))
};
myCollection[myCollection.length] = myObj;
});
$("MainContent_gvKarakteristike_ddlOpis_0").remove();
}
C按钮:
<asp:Button ID="btnButton" runat="server" Text="Save" autopostback="true" OnClientClick="return updateArray()" OnClick="btnButton_Click" />
我需要帮助,将javascript中的值与获取的值一起传递给C,以便稍后将它们存储到数据库中
protected void btnButton_Click(object sender, EventArgs e)
{
}
在WebMethod属性的帮助下,可以使用ajax调用将值传递给后端代码 因此,您的后端代码如下所示
[WebMethod]
public static string StoreGridData(object[] obj)
{
if (obj.Length == 0) return string.Empty;
//save values to database
return "Success";
}
您的fontend代码将是
function updateArray() {
//do your normal check to get the data for your collection
$.ajax({
type: "POST",
url: "Yourpage.aspx/StoreGridData",
data: {obj: myCollection },
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
alert(response.d);
},
failure: function(response) {
alert(response.d);
}
});
}
不要忘记在CS文件中添加Using System.Web.Services引用。最后,将按钮代码更改为
<button id="someButton" onclick="updateArray()" type="button">Save</button>
您不应该在单击时将autopostback和服务器端onclick与javascript混合使用。我明白了。你能在代码方面帮我一点忙吗。我有个问题。Array myCollection仅在重新加载页面时更新。如果它在点击按钮时更新,我会很高兴。谢谢你的回答!当我将代码更改为您的按钮时出现问题。阵列更新无法工作。数组获取列中的所有值,仅在页面重新加载时更新。你能帮忙吗@freej17是否在Page_Load事件中用数据填充网格?是,所有内容都在:受保护的无效Page_Loadobject sender,EventArgs e{}
<button id="someButton" onclick="updateArray()" type="button">Save</button>