将javascript var传递给后面的asp.net代码(c#)

时间:2017-03-01 07:28:08

标签: javascript c# asp.net

我有问题,我想将javascript var传递给服务器端。

我想将var autocomplete的值传递给名为Event_Address的字符串;

aspx.cs:

protected void ButtonAddEvent_Click(object sender, EventArgs e)
{
    string Event_Address =hdnfldVariable.Value;
}

ASPX:

var autocomplete;

<script type="text/javascript">
    var somefunction = function() {
        var hdnfldVariable = document.getElementById('hdnfldVariable');
        hdnfldVariable.value = autocomplete;
    }
</script>

<asp:HiddenField ID="hdnfldVariable" runat="server" />

<asp:Button ID="ButtonAddEvent" runat="server" Text="הוסף אירוע חדש" 
        Font-Bold="True" Font-Names="Gisha" Font-Size="17pt" ForeColor="Blue" 
        onclick="ButtonAddEvent_Click" 
        style="z-index: 1; left: 497px; top: 774px; position: absolute" />
</asp:Content>

4 个答案:

答案 0 :(得分:1)

除了teo van kot的回答,如果ClientID HiddenField是动态的,那么它应该定义为动态ClientID,如下所示:

var autocomplete = "[somevalue]";

    <script type="text/javascript">
    var somefunction = function() {
        // set this if you have dynamic ClientID
        var hdnfldVariable = document.getElementById("<%= hdnfldVariable.ClientID %>");
        hdnfldVariable.value = autocomplete;
    }
    </script>

      <asp:HiddenField ID="hdnfldVariable" runat="server" />

       <asp:Button ID="ButtonAddEvent" runat="server" Text="הוסף אירוע חדש" 
        Font-Bold="True" Font-Names="Gisha" Font-Size="17pt" ForeColor="Blue" 
        onclick="ButtonAddEvent_Click"
    OnClientClick="somefunction();"
        style="z-index: 1; left: 497px; top: 774px; position: absolute" />
</asp:Content>

参考:

Passing values from javascript to code behind in ASP.NET

答案 1 :(得分:0)

如果你想在按钮上调用你的js功能,你可以将其添加到OnClientClick属性。像这样:

var autocomplete;

    <script type="text/javascript">
    var somefunction = function() {
        var hdnfldVariable = document.getElementById('hdnfldVariable');
        hdnfldVariable.value = autocomplete;
    }
    </script>

      <asp:HiddenField ID="hdnfldVariable" runat="server" />

       <asp:Button ID="ButtonAddEvent" runat="server" Text="הוסף אירוע חדש" 
        Font-Bold="True" Font-Names="Gisha" Font-Size="17pt" ForeColor="Blue" 
        onclick="ButtonAddEvent_Click" 
        OnClientClick="somefunction();"
        style="z-index: 1; left: 497px; top: 774px; position: absolute" />
</asp:Content>

答案 2 :(得分:0)

您可以将“自动完成”的值保存到隐藏字段,也可以使用ajax方法调用c#函数,将值从前端传递到后端。

或者在您的情况下使用attrbute属性来更改值。

请参阅此链接以获取ajax电话 Ajax method call

答案 3 :(得分:0)

您可以在服务器端使用[Web Method]。您应该将using System.Web.Services;添加到您的cs代码中以使用Web方法。以下是步骤:

  • 更改按钮;使用html按钮代替服务器端按钮。
  • 创建js函数并使用按钮中的onclick事件调用它。
  • 将您的变量与PageMethods.YourWebMethod(yourParam);一起传递给js。
  • 然后你在服务器端web方法中使用它。 这是一个前任:

     function JsFunctionOnclick(){ 
      PageMethods.MyPageMethod(myParameter);
     }
    

    这是服务器端:

    [WebMethod]
    public static void MyPageMethod(string param)
    {
        //do something
    }
    

确保您的网络方法静态祝您好运。