Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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/9/google-cloud-platform/3.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查询字符串_C#_Asp.net - Fatal编程技术网

C# 从下拉列表中选择ASP查询字符串

C# 从下拉列表中选择ASP查询字符串,c#,asp.net,C#,Asp.net,我有一个网页:Menu.aspx,其中我有以下相关控件: 具有某些值的下拉列表 超链接,将我重定向到名为Edit.aspx的页面 在我的Edit.aspx页面中,我有一个取消按钮,它将用户重定向回菜单页面 我想做的是,当我的用户点击超链接进入编辑页面时,DropDownList的索引保存在我的菜单中的查询字符串中。aspx页面我有以下aspx代码,但我不确定如何继续 <asp:HyperLink ID="lnkEdit" NavigateUrl='<%# "Edi

我有一个网页:Menu.aspx,其中我有以下相关控件:

  • 具有某些值的下拉列表
  • 超链接,将我重定向到名为Edit.aspx的页面
在我的Edit.aspx页面中,我有一个取消按钮,它将用户重定向回菜单页面

我想做的是,当我的用户点击超链接进入编辑页面时,DropDownList的索引保存在我的菜单中的查询字符串中。aspx页面我有以下aspx代码,但我不确定如何继续

<asp:HyperLink
    ID="lnkEdit"
    NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") + ...not sure... %>'
</asp:HyperLink>

<asp:DropDownList
    ID="myDropDown"
    ...some <asp:ListItems/>
</asp:DropDownList>

我将使用带有服务器端
OnClick
事件的
LinkButton
控件

<asp:LinkButton ID="lbtn1" runat="server" OnClick="lbtn1_Click" 
    CommandArgument='<%#Eval("UserID") %>' />

编辑:正如Royi Namir在下面指出的,如果可以使用javascript,javascript是一个更好的选择。这会创建到服务器的不必要的往返

这里有一个简单的方法就是使用会话

示例:

Session["SessionName"] = idDropDownList;
在另一个页面上,仅访问会话的内容

string idDropDownList = (string)Session["SessionName"];

希望我能帮上忙。

试试这样的

<asp:HyperLink ID="lnkEdit"
    NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") + 
    "&menuid=" + myDropDown.SelectedValue %>'> MyText </asp:HyperLink>
MyText

并在下拉列表中将
AutoPostBack
设置为true。无论何时更改下拉列表,新的选定值都会与hyperlink navigate url绑定。

因此,您的最终目标是将用户重定向到类似于
Edit.aspx?userID=1&DropDownValue=value
@RoyiNamir是对的,你必须使用javascript。那么为什么你的问题不是用js标记?:-)或者您可以使用编辑“按钮”,它将提交页面。按钮单击事件可以执行您想要的操作-将用户重定向到Edit.aspx?user=userId&menu=selectedValue。。。或者只是用DDL自动回发邮件,我可以这样做:NavigateURL=“return getURL()”其中getURL是一个JS函数?@Rhs,似乎你的超链接在一个数据绑定控件中?为什么你只是为了这样一个简单的场景而往返服务器?在我写这篇文章时,他似乎不想使用javascript。不过我同意你的看法,JS绝对是一个比往返更好的选择。看起来真的很不错。我会告诉你事情的进展。但我可能倾向于将超链接更改为LinkButton,并制作OnClientClick功能,但这并不能满足您的要求。这些参数将在asp:Hyperlink作为锚定标记提供给浏览器时进行计算。。。因此,导航URL不会反映已更改的选定值。另外,如果您使用的是OnClientClick,则无需从超链接更改为linkbutton。@MikeSmithDev我使用一个JS函数为我的超链接创建了OnClientClick,该函数执行alertbox操作,但什么也没有发生。对linkbutton做了同样的事情,它成功了。HyperLink没有OnClientClickies,但您也可以通过给它一个onclick事件,如onclick=“alert('boo')”,来实现同样的功能。上面的例子会起作用,因为它有自动回邮功能。。。但是仅仅为了设置超链接的值而重建页面不是很有效,所以onclick事件更好。@MikeSmithDev是的,你是对的。我要走那条路线
<asp:HyperLink ID="lnkEdit"
    NavigateUrl='<%# "Edit.aspx?" + Eval("UserID") + 
    "&menuid=" + myDropDown.SelectedValue %>'> MyText </asp:HyperLink>