如何从代码隐藏文件中调用javascript客户端函数

时间:2015-08-04 17:28:42

标签: javascript c# asp.net

如何从后面的代码调用aspx页面中的showItems()函数。

<script>
function getItems(){
  var items = [];
  return items; //items=['a','b','c']
}

<form id="form1" runat="server">
  <asp:Hiddenfield id="HiddenField1" runat="server"></asp:hiddenfield>
</form>
代码背后的代码:

ScriptManager.RegisterStartupScript(this, GetType(), "items", "<script type='text/javascript'>getItems()</script>", false);

2 个答案:

答案 0 :(得分:4)

这里有一些事情......

首先,您不“从服务器端代码调用客户端功能”。你可以做的是包括一些客户端代码,它本身将调用该功能,客户端。哪个出现是你正在做的事情,但我只想确保你理解其中的差异。

第二次,您的函数名为showItems,但您正在调用名为getItems的函数:

<script type='text/javascript'>getItems()</script>

请致电showItems()?像这样?:

ScriptManager.RegisterStartupScript(this, GetType(), "items", "<script type='text/javascript'>showItems()</script>", false);

第三次showItems函数返回一些内容。但是你实际上并没有用这个结果做任何事情。你只是调用函数并忽略结果。所以你要完成的事情并不是很清楚。

答案 1 :(得分:1)

像这样:

Page.ClientScript.RegisterStartupScript(GetType(), "key", "showItems();", true);

编辑:在C#代码后面获取javascript返回值使用javascript代码将值分配给隐藏控件。然后,您可以访问C#代码中的隐藏控件值。看一下this文章。例如:

<script type="text/javascript">
    function showItems() {
        var items = new Array(3);
        items[0] = "name1";
        items[1] = "name2";
        items[2] = "name3";
        items[3] = "name4";

        document.getElementById('<%=HiddenField1.ClientID%>').value = items.join(',');
    }
</script>

在后面的代码中:

string[] itemArr = HiddenField1.Value.Split(",".ToCharArray());