将Javascript值传递给C#Code Behind(扫描)

时间:2015-12-29 10:19:01

标签: javascript c# asp.net

我有扫描条件时调用JavaScript函数的扫描程序。在这个函数中,我试图将条形码值传递给某种变量,我可以在后面的C#代码中使用它。我试过这个:

document.getElementById("hidden").value = data;
alert(document.getElementById("hidden").value);

这会扫描条形码值并发出警报。在后面的代码中,我正在寻找这样的东西:

protected void hidden_ValueChanged(object sender, EventArgs e)
{
//magic wizard man stuff going on
}

这似乎根本没有触发。有什么想法吗?

(基本上我想要一个值传递给C#Code Behind所以我可以用它来做事)

3 个答案:

答案 0 :(得分:0)

您最终必须进行回发,但如果您可以创建一个按钮并从您的javascript代码中单击它,那么这可能是一个更简单的解决方案。

答案 1 :(得分:0)

将该事件附加到隐藏字段,如此

<asp:hiddenfield id="hidden"
              onvaluechanged="hidden_ValueChanged"
              value="" 
              runat="server"/>

MSDN source

答案 2 :(得分:0)

为了实现这一点,您可以使用Page Method。另一种方法是使用jquery,就像这样(只是一个代码片段):

$.ajax({
          type: "POST",
          url: "WebForm.aspx/CodeBehindMethod",
          data: "{<your scanner id>}",
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          async: true,
          cache: false,
success: function (msg) 
        {
                       //any div or label you want to update
                }
              })

在您的代码中:

[WebMethod]
public static string CodeBehindMethod(string Id)
{
   //whatever you want to do with the Id
   return Id;
}