Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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/2/.net/20.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
C# 如何使我的ASP.NET页面将列表框中选择的值编码为HTTP请求URL的参数?_C#_.net_Asp.net_Webforms - Fatal编程技术网

C# 如何使我的ASP.NET页面将列表框中选择的值编码为HTTP请求URL的参数?

C# 如何使我的ASP.NET页面将列表框中选择的值编码为HTTP请求URL的参数?,c#,.net,asp.net,webforms,C#,.net,Asp.net,Webforms,我在ASP.NET页面上有一个列表框: <select id="Language" multiple size="5" name="Language" runat="server"> <option value="English" selected>English</option> <option value="French">French</option> <option value="German"&g

我在ASP.NET页面上有一个列表框:

<select id="Language" multiple size="5" name="Language" runat="server">
    <option value="English" selected>English</option>
    <option value="French">French</option>
    <option value="German">German</option>
</select>

英语
法语
德国的
并且包含该列表框的表单有一个“提交”按钮


当在列表框中选择了
X
时,我希望页面形成对
ProcessData.asmx?Language=X
的请求


如何实现这一点?

您应该能够使用
Request.Form[“Language”]

或者将OnClientClick属性设置为
“javascript:WebForm_-DoPostBackWithOptions(新WebForm_-PostBackOptions('btnPost','',false','ProcessData.asmx?Language='+GetSelectedLang(),false,false))”


并在页面中添加GetSelectedLang()javascript函数。

我建议您执行以下操作:

1) 钩住submit按钮的OnClientClick事件。 2) 使用return false取消该事件。 3) 在OnClientClick事件处理程序中,使用XmlHttpRequest手动向ProcessData.asmx发送GET请求,并附加所需的查询字符串参数。。我建议您使用第三方JavaScript Ajax库来实现这一点。下面是使用jQuery的简短示例:

<script type="text/javascript">
    function clientClick() {
        var $ = jQuery;
        $.get(
            url = "ProcessData.asmx",
            data = { Language : $get('<%= Language.ClientID %>').value }
        );
    }


</script>

 <asp:Button runat="server" ID="Button1" Text="Postback" OnClientClick="clientClick(); return false"/>

函数clientClick(){
var$=jQuery;
美元(
url=“ProcessData.asmx”,
数据={Language:$get('').value}
);
}

您的选择必须是表单的一部分。表单提交时,它会将所有内部控制值提交给操作

<form id="submit" action="ProcessData.asmx" runat="server">
<select id="Language" multiple size="5" name="Language" runat="server">
    <option value="English" selected>English</option>
    <option value="French">French</option>
    <option value="German">German</option>
</select>
<input type="submit" text="Submit form"/>
</form>

英语
法语
德国的

带有do job for you:)的Submit按钮。

此方法不会设置查询字符串参数,但是,我认为在这种情况下,根本不需要将语言作为查询字符串参数发送。
<form id="submit" action="ProcessData.asmx" runat="server">
<select id="Language" multiple size="5" name="Language" runat="server">
    <option value="English" selected>English</option>
    <option value="French">French</option>
    <option value="German">German</option>
</select>
<input type="submit" text="Submit form"/>
</form>