2010-08-13 103 views
0

我想從後面的代碼傳遞一些參數給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; 
     } 
+0

我沒有看到你在哪裏使用函數中的參數。你如何期待它們被使用以及函數是如何被調用的? – tvanfosson 2010-08-13 14:05:21

+0

我想使用這個變量,現在我使用示例硬編碼值。 – Ramakrishnan 2010-08-13 14:08:50

+0

你可以擴展你的問題嗎?這個函數中的一個參數是否應該從服務器傳遞? – 2010-08-13 14:09:48

回答

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對象元素的開始標記之下。

0

對於你在這裏描述的用途,我在全局JavaScript聲明中使用了asp:Literal控件和泵。

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

然後,當我以後需要它們時,它們可用於整個頁面。

相關問題