Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使动态生成的href调用c#函数_C#_Asp.net_Html_Visual Studio 2010_Htmlgenericcontrol - Fatal编程技术网

使动态生成的href调用c#函数

使动态生成的href调用c#函数,c#,asp.net,html,visual-studio-2010,htmlgenericcontrol,C#,Asp.net,Html,Visual Studio 2010,Htmlgenericcontrol,我正在尝试建立一个下拉列表,如下所示 我正在生成HTMLUL&li标签,如下所示,工作正常。但是,每次都有一个anch标签(参见在线注释);我需要能够调用函数并传递单击的文本。我该怎么做 foreach (var productType in productTypesNames.Keys) { var li = new HtmlGenericControl("li"); nav.Controls.Add(li);

我正在尝试建立一个下拉列表,如下所示

我正在生成HTMLUL&li标签,如下所示,工作正常。但是,每次都有一个anch标签(参见在线注释);我需要能够调用函数并传递单击的文本。我该怎么做

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

让您的
href
执行一个JS函数,该函数可以通过AJAX调用服务器。您可以自己编写代码,也可以将jQuery或
[WebMethod]
s与ASP.NET Ajax结合使用

其思想是,您可以通过Ajax调用服务器来执行服务器端方法


另外,看看JSONP的工作方式——也许你可以用你选择的URL参数“ping”另一个页面来进行单向异步调用。

让你的
href
执行一个JS函数,该函数可以通过AJAX调用服务器。您可以自己编写代码,也可以将jQuery或
[WebMethod]
s与ASP.NET Ajax结合使用

其思想是,您可以通过Ajax调用服务器来执行服务器端方法


另外,看看JSONP的工作方式——也许你可以用你选择的URL参数“ping”另一个页面来进行单向异步调用。

如果你不介意回发,或者想要回发,请使用一个
链接按钮
控件,该控件可以轻松地动态构建,而不是
HtmlGenericControl(“a”)
,并让服务器端onclick方法调用另一个方法


否则,正如其他人所解释的那样,您需要AJAX。

如果您不介意回发,或者想要回发,请使用
LinkButton
控件,轻松地动态构建,而不是
HtmlGenericControl(“a”)
,并让服务器端onclick方法调用其他方法


否则,正如其他人所解释的那样,您需要AJAX。

您知道标记存在于浏览器中,而C代码存在于服务器中吗?我知道它是面向jQuery的,但本文很好地解释了客户端和服务器之间的区别以及中间的HTTP协议:是的,我知道。为不清楚道歉:-(.但基本上,我需要将单击的文本发送到另一个服务器端函数进行进一步处理。我该怎么做?你知道标记存在于浏览器中,而C代码存在于服务器中吗?我知道它是面向jQuery的,但本文很好地解释了客户端和服务器之间的区别以及位于服务器端的HTTP协议中间的n:是的,我知道。为不清楚道歉:-(。但基本上,我需要将单击的文本发送到另一个服务器端函数以进行进一步处理。我如何做到这一点?