【问题标题】:Request.Form("ListBox1.ClientID") returning nothingRequest.Form("ListBox1.ClientID") 什么都不返回
【发布时间】:2012-03-30 21:55:28
【问题描述】:
Request.Form("ListBox1.ClientID") 

webcontentformusercontrols 中不返回任何内容。但它与普通的网络表单完美配合。

所有dropdownslistListbox 都由jquery 填充。因此服务器无法检索所选值,因为根据服务器,它们实际上并不存在,但它们确实存在于客户端。然后我使用Request.Form,它与普通Webform 完美配合,但是当我在webcontentpagesusercontrols 中使用它时,它什么都没有。

我真的很讨厌这个问题,任何想法都会有所帮助。

【问题讨论】:

    标签: asp.net user-controls master-pages request.form


    【解决方案1】:

    试试:

     Request.Form(ListBox1.UniqueID) 
    

    【讨论】:

    • 如果您必须填充一组相关的下拉列表(如 Country、State、City),您更喜欢 cascadingdropdown 还是 jquery?
    【解决方案2】:

    如果您在 ViewState 之外填充项目,正如您所说,服务器因此不会知道它们。您可以查看这个问题以获得更多见解:

    Client-side JavaScript ViewState Update in asp .net forms

    我在我的项目中使用了一个隐藏元素部分,其中包含 TextBoxes 来存储选定的值和通过 __doPostBack();$button.click(); 调用将数据传回服务器的按钮。

    【讨论】:

    • 引号是错误的...Request.Form(ListBox1.ClientID) 什么也不返回。
    • ListBox1.SelectedValue 没有返回任何内容,因为它已被客户端填充。
    • ListBox1 在哪里,您想从哪里访问它? MasterPage、ContentPage、UserControl?
    • 控件是可访问的,但它是由客户端的 jquery 和 Webservice 填充的。
    • 控件在 UserControl 上,我正在从 Usercontrol 的代码文件 .ascx 访问它
    【解决方案3】:

    为了使用Request.Form 访问这些值,您需要通过控件名称而不是控件 ID 来查找它们。因此,首先,如果您希望能够做到Request.Form["SomeID"],请确保控件 ID 和控件名称在页面上呈现时完全相同。其次,在您的情况下,实际控制 ID 不太可能是 "ListBox1.ClientID"。我想你可能打算改用Request.Form[ListBox1.ClientID]。第三,我的建议是,在页面返回后设置一个断点,并在Request.AllKeys 中添加一个手表,这样您就可以准确地看到可以用来检索提交的值的键名。

    【讨论】:

    • 所有控件都在 AllKeys 中,当我使用 UniqueID 尝试它时,sbhomra 说它检索到的值就像魔法一样。
    猜你喜欢
    • 2012-06-18
    • 2018-09-10
    • 2017-02-14
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多