1

以下のようにドロップダウンを作成しようとしています。

これは私が生成する必要があるメニューです

以下のようにhtmlul&liタグを生成しており、正常に動作しています。ただし、アンカータグがある場合は常に(インラインコメントを参照)。関数を呼び出して、クリックされたテキストを渡すことができる必要があります。これどうやってするの?

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

2 に答える 2

1

ポストバックを気にしない場合、またはそれが必要な場合は、のLinkButton代わりに動的に簡単に構築できるコントロールを使用しHtmlGenericControl("a")、サーバー側のonclickメソッドに他のメソッドを呼び出させます。

それ以外の場合は、他の人が説明しているようにAJAXが必要です。

于 2011-10-19T19:47:43.607 に答える
0

hrefJS関数を実行してもらい、AJAX経由でサーバーを呼び出すことができます。独自のコードを作成することも、ASP.NETAjaxでjQueryまたは[WebMethod]sを使用することもできます。

アイデアは、Ajaxを介してサーバーを呼び出すことにより、サーバー側のメソッドを実行できるということです。

また、JSONPがどのように機能するかを見てください。おそらく、一方向の非同期呼び出しを行うために、選択したURLパラメーターを使用して別のページに「ping」を実行できます。

于 2011-10-19T19:39:17.793 に答える