【问题标题】:How to get control value after Javascript refreshJavascript刷新后如何获取控制值
【发布时间】:2013-12-18 11:34:38
【问题描述】:

我有一个页面,它有一个弹出模式窗口,模式向页面返回一个值,然后刷新它。我需要能够在页面刷新时获取页面代码隐藏中的值,但刷新后返回的文本框控件的值始终为""

如何获取我使用 JS 返回的值?

代码是在测试时添加的,因为我试图在刷新之前获取具有内容的文本框的值。

protected void Page_Load(object sender, EventArgs e) {
    TranslatePage.ObjectsSetup(Page.Controls, 3);
    GetUserInfo();
    if (txtCustomerType.Text != "" && txtCustomerType.Text != lblTempCustType.Text) {
        SearchCustType(txtCustomerType.Text);
    }
    SetupControls();
    string test;
    test = txtCustomerType.Text;
}

【问题讨论】:

  • 当您的模态返回值时,您可以使用 location.href = "YourPage.aspx?myvalue=test" 并且您可以使用 Request.QueryString["myvalue"] 从后面的代码中获取它
  • 但这不是一个链接。模型将一个值放入文本框中,然后刷新文本框页面。然后我想捕获文本框内的内容并运行搜索。
  • 不一定是链接。您可以在 javascript 代码的任何位置使用 location.href ......例如;关闭模态后。你可以像这样使用这个技巧; location.href=YourPage.aspx?myvalue=yourtexboxvalue 您可以使用 document.getElementById("textboxID").value 获取您的 texbox 值
  • 这将在代码隐藏中工作?
  • 您正在将链接(带有 QueryString)重定向到您的页面。您可以使用 Request.QueryString["myvalue"] 来获取它,不是吗?

标签: c# javascript asp.net webforms code-behind


【解决方案1】:

我有类似的情况,但在我的情况下,我有一个下拉列表框,其中充满了 javascript。因此,为了在触发 javascript 以填充下拉列表后获取所选值,我使用了另一种方法,即获取值

public static string GetValueOfControl(WebControl ServerControl)
    {
        string IdOfControl = ServerControl.UniqueID;
        NameValueCollection PostBackFormControls = HttpContext.Current.Request.Form;
        if (PostBackFormControls.AllKeys.Length == 0)
            return null;
        string value = PostBackFormControls[IdOfControl];
        if (value == null)
        {
            int index = 0;
            for (; index < PostBackFormControls.AllKeys.Length; index++)
                if (PostBackFormControls.AllKeys[index].EndsWith(IdOfControl))
                    break;
            if (index < PostBackFormControls.AllKeys.Length)
                return PostBackFormControls[index];
            else
                return null;
        }
        else
        {
            return value;
        }
    }

并得到我使用的价值

string District = Convert.ToString(GetValueOfControl(dropDownListBoxDistrict));

所以,你需要做的就是添加方法并传递你的文本框来获取它的值,

string test = Convert.ToString(GetValueOfControl(txtCustomerType));

我相信,它会为你工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-06
    • 2010-11-22
    • 1970-01-01
    • 2022-01-22
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2018-02-06
    相关资源
    最近更新 更多