如何使用ASP.NET,C#后面的代码调用javascript函数?

时间:2010-08-13 14:01:28

标签: c# .net asp.net

我想从代码后面传递一些参数到javascript函数。我的Javascript功能如下。如何发送arg到这个功能。从服务器端代码。

 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;
        }  

2 个答案:

答案 0 :(得分:3)

在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对象元素的开始标记的正下方插入客户端脚本。

答案 1 :(得分:0)

对于您在此处描述的用途,我在全局JavaScript声明中使用asp:Literal控件和泵。

<script type="text/javascript">
    var FirstNameId = "<%=Me.txtFirstName.ClientID%>";
    var MiddleNameId = "<%=Me.txtMiddleName.ClientID%>";
    var LastNameId = "<%=Me.txtLastName.ClientID%>";
</script>

然后,当我以后需要它们时,它们可用于整个页面。