文本框文本更改,查询字符串参数不更改

Posted

技术标签:

【中文标题】文本框文本更改,查询字符串参数不更改【英文标题】:textbox text changes, querystring parameter doesn't 【发布时间】:2013-05-19 00:41:57 【问题描述】:

我正在使用带有 AutoCompleteExtender 的文本框。

输入零件编号,单击查找 - 它填充页面。 我在页面上有一个按钮,用于读取文本框的文本,将其用作查询字符串参数,然后打开一个新窗口。

第一次效果很好。但 我关闭第二个窗口。 添加一个新的零件号,单击查找 - 它会正确地使用新信息填充页面。

我点击了按钮 -​​ 这是问题所在 - 打开新窗口时,它会保留原始零件编号。

我尝试添加第二个查询字符串参数(日期时间),它仍然保留相同的部件号。我还尝试将文本传输到隐藏标签,然后从那里读取(认为自动完成扩展器与它有关)。没有运气。

这是按钮的代码 -

protected void btnViewIncidents_Click(object sender, EventArgs e)
    
        try
        
            string strDOT = txtXingList.Text;
            DateTime DT = DateTime.Now;
            btnViewIncidents.Attributes.Add("onclick","window.open('Incidents.aspx?DOT=" + strDOT + "&DT=" + DT + "'); return false;");
        
        catch (Exception ex)
        
            throw (ex);
        
    

及第二页检索参数的代码

string Crossing = Page.Request.QueryString["DOT"];
        string DT = Page.Request.QueryString["DT"];
        txtXingList.Text = Crossing;

非常感谢任何建议/帮助!谢谢!

【问题讨论】:

【参考方案1】:

txtXingList 是否被填充到其他地方?如果是,请检查代码,它可能在按钮单击事件之前被调用。

一些事件在按钮点击之前被调用。

由于您的表单肯定是 method="post",因此当您单击 btnviewIncidents 时,查询字符串不会更改。 如果页面加载使用查询字符串填充 txtXingList,那么当调用按钮事件时,它将包含错误的值。

【讨论】:

我在方法中添加了一个中断,并注意到第二次,它没有中断 - 只是打开了旧部件号的页面。 你是不是在改变txtXingList.Text的值的所有地方都放了断点? 是的。我逐步完成了例程,方法是选择新的 strDOT。但是,当它执行实际的 open.window 时,它会重新使用旧的 strDOT。想知道它是否与ajax有关。另外,我正在使用 firefox 进行测试。【参考方案2】:

该页面需要绝对知道您想要一个弹出表单,即使它只是打开一个新标签页。像魅力一样工作。

        try
        
            string strDOT = txtXingList.Text;
            DateTime DT = DateTime.Now;

            string newWin = "window.open('../Application/AppsSB.aspx?DOT=" + strDOT + "&DT=" + DT + "');";

            ClientScript.RegisterStartupScript
             (this.GetType(), "pop", newWin, true);
        
        catch (Exception ex)
        
            throw (ex);
        

【讨论】:

以上是关于文本框文本更改,查询字符串参数不更改的主要内容,如果未能解决你的问题,请参考以下文章

根据SSRS中的布尔参数选择更改文本框

更改密码文本框更改的标签文本

使用脚本更改文本框中一个字符的字体

无法更改 ASP.NET MVC 3 中文本框的值

更改文本框高度?

如何制作一个不断更改输入的文本框?