如何使用ASP.NET,C#后面的代码调用javascript函数?
问题描述:
我想从后面的代码传递一些参数给javascript函数。我的Javascript功能如下。如何发送arg到这个func。从服务器端代码。如何使用ASP.NET,C#后面的代码调用javascript函数?
function addTab(tabid,tablist) {
//to Find the Panel
var Panel = $find("<%=RadPanelBar2.ClientID %>");
//To find the Tab Strip
var tabStrip = Panel._findItemByValue("QueueGridPanel").findControl("RadTabStrip2")
tabStrip.get_tabs().clear();
var newTabNames = "MyTab1,MyTab2,MyTab3";
//var newTabNames = document.getElementById("ctl00_GridContentPlaceHolder_hfTabs").value;
var TabsNames = newTabNames.split(',');
var i = 0;
while (i < TabsNames.length) {
var ntab = new Telerik.Web.UI.RadTab();
tabStrip.get_tabs().add(ntab);
ntab.set_text(TabsNames[i]);
i++;
}
return false;
}
答
在MSDN检出RegisterClientScriptBlock。您可以使用它在回发后插入Javascript。
String csName = "myScript";
Type csType = this.GetType();
// Get a ClientScriptManager reference from the Page class.
ClientScriptManager cs = Page.ClientScript;
// Check to see if the client script is already registered.
if (!cs.IsClientScriptBlockRegistered(csType, csName))
{
StringBuilder csText = new StringBuilder();
csText.Append("<script type=\"text/javascript\"> ");
csText.Append("addTab(" + myTabID + ", " + myTabList + "); </");
csText.Append("script>");
cs.RegisterClientScriptBlock(csType, csName, csText.ToString());
}
RegisterClientScriptBlock方法将客户端脚本插入紧邻Page对象元素的开始标记之下。
答
对于你在这里描述的用途,我在全局JavaScript声明中使用了asp:Literal控件和泵。
<script type="text/javascript">
var FirstNameId = "<%=Me.txtFirstName.ClientID%>";
var MiddleNameId = "<%=Me.txtMiddleName.ClientID%>";
var LastNameId = "<%=Me.txtLastName.ClientID%>";
</script>
然后,当我以后需要它们时,它们可用于整个页面。
我没有看到你在哪里使用函数中的参数。你如何期待它们被使用以及函数是如何被调用的? – tvanfosson 2010-08-13 14:05:21
我想使用这个变量,现在我使用示例硬编码值。 – Ramakrishnan 2010-08-13 14:08:50
你可以扩展你的问题吗?这个函数中的一个参数是否应该从服务器传递? – 2010-08-13 14:09:48