2011-10-19 55 views
1

我想建立一個下拉如下。使動態生成的href調用一個c#函數

this is the menu that I need to generate

我生成HTML UL &李標籤下面和工作正常。但是,每次都有一個錨標籤(請參閱在線評論);我需要能夠調用一個函數並傳遞被點擊的文本。我怎樣才能做到這一點?

 foreach (var productType in productTypesNames.Keys) 
     { 
      var li = new HtmlGenericControl("li"); 
      nav.Controls.Add(li); 
      var ul = new HtmlGenericControl("ul"); 

      var anchor = new HtmlGenericControl("a"); 
      anchor.Attributes.Add("href", "#"); 

      foreach (var pName in productTypesNames[productType]) 
      { 
       var subLi = new HtmlGenericControl("li"); 
       var anch = new HtmlGenericControl("a"); 
       anch.Attributes.Add("href", "#"); 
       //**THIS NEEDS TO CALL A C# FUNCTION AND PASS pName; instead of #** 
       anch.InnerHtml = pName; 
       subLi.Controls.Add(anch); 
       ul.Controls.Add(subLi); 
      } 
      anchor.InnerHtml = productType; 
      li.Controls.Add(anchor); 
      li.Controls.Add(ul); 
     } 
+0

你知道標記存在於瀏覽器中,並且C#代碼存在於服務器中嗎? –

+0

我知道它是面向jQuery的,但本文很好地解釋了客戶端和服務器以及位於中間的HTTP協議之間的區別:http://blog.mikecouturier.com/2010/02/beginning-with-jquery-solid- foundation_22.html –

+0

是的,我願意。對不清楚的道歉:-(但基本上,我需要發送一個文本被點擊到另一個服務器端函數進行進一步處理,我該怎麼做? – socialMatrix

回答

1

如果您不介意回發或需要它,請使用LinkButton控件,它可以動態構建而不是您的HtmlGenericControl("a"),並讓服務器端onclick方法調用您的其他方法。

否則,您需要像其他人解釋的那樣使用AJAX。

0

讓您的href執行一個JS函數,並且可以通過AJAX調用服務器。您可以擁有自己的代碼,或者使用jQuery或帶有ASP.NET Ajax的[WebMethod]

想法是,您可以通過Ajax調用服務器來執行服務器端方法。

另外,看看JSONP的工作方式 - 也許你可以用你選擇的URL參數「ping」另一個頁面來做單向異步調用。