如何从后面的代码调用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);
答案 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());