c# - 只需一键即可做出两个决定

标签 c# asp.net javascript

我现在的问题是我需要单击两次才能使用正确的文本进行搜索。有没有办法捕获我发送的内容并更新它?还有其他解决办法吗?

你好!!

我有 2 个单选按钮,用于决定使用哪个搜索引擎(Google 或我的),并且我有 1 个按钮,用于提交将用于在 2 个搜索引擎之一中进行搜索的文本。当我尝试进行谷歌搜索时,第一次它只是打开新窗口,当我第二次单击时,它会打开带有我想要搜索的单词的谷歌窗口,如果我尝试进行搜索,它会同时进行两次搜索。我做错了什么?我如何让它以正确的方式工作?

  <table><tr>
  <td>
      <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
      <asp:Button ID="btnSearch" runat="server" Text="Search" OnClick="Button1_Click" UseSubmitBehavior="true"/>
  </td>
  </tr>
  <tr align="center">
  <td>
      <input id="Search1" value="one" type="radio" runat="server" name="sitesearch" />Site Name
      <input id="Search2" value="two" type="radio" runat="server" name="sitesearch" />           
      <img src="http://www.google.com/images/poweredby_transparent/poweredby_FFFFFF.gif" alt="Google" />
  </td>      
  </tr>
</table>

然后我...

protected void Button1_Click(object sender, EventArgs e){

        if (Search1.Checked)
        {
            //My Search
            Response.Redirect(Request.UrlReferrer.AbsolutePath +...
        }
        else if (Search2.Checked)
        {
            //Google search
            btnSearch.Attributes.Add("OnClick", "window.open('http://www.google.com/search?q=" + Regex.Replace(TextB.Text, " ", "+") + "','_blank');");
        }
    }

...我有这个...

TextBox TextB;    
HtmlInputRadioButton radioBSite;
Button btnSearch;
HtmlInputRadioButton radioBGoogle;

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    TextB = (TextBox)FindControl("TextBox1");
    TextB.Text = Request["find"];
    radioBSite = (HtmlInputRadioButton)FindControl("Search1");
    radioBSite.Checked = true;
    radioBGoogle = (HtmlInputRadioButton)FindControl("Search2");

    btnSearch = (Button)FindControl("btnSearch");
    btnSearch.Click += new EventHandler(Button1_Click);
    .
    .
}

最佳答案

问题出在这行代码上:

btnSearch.Attributes.Add("OnClick", "window.open('http://www.google.com/search?q=" + Regex.Replace(TextB.Text, " ", "+") + "','_blank');");

您正在添加一个客户端 OnClick,它将在新窗口中打开搜索(_blank 目标)。

如果您执行以下操作:

Response.Redirect("http://www.google.com/search?q=" + TextB.Text);

一切都会如你所愿。

关于c# - 只需一键即可做出两个决定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1808251/

相关文章:

c# - C#中如何获取每个处理器的CPU使用率?

javascript - 如何解决在 .net 应用程序中实现 Jquery.SpellChecker 时出现的错误

c# - 远程 IIS 管理

asp.net - rdlc 报告 - ‘A data source instance has not been supplied for the data source’ 错误

javascript - 我的搜索框只搜索大写字母

javascript - 如何在页面加载时在 HtmlEditorExtender 中设置内容

c# - 绘制树的算法,其中节点可以附加到深度大于自身 + 1 的其他节点

c# - 如何从代码隐藏刷新自定义 wpf 用户控件?

javascript - 从 document.ready 获取当前 URL

javascript - 替换更改捕获组的值