Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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/1/asp.net/33.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.net中必须单击两次按钮才能触发回发_C#_Asp.net - Fatal编程技术网

C# 在asp.net中必须单击两次按钮才能触发回发

C# 在asp.net中必须单击两次按钮才能触发回发,c#,asp.net,C#,Asp.net,我的searchbutton click事件中有一些验证代码,并且一直存在问题,必须单击两次才能正常工作。 Asp代码: <asp:Button ID="SearchButton" runat="server" Text="Search" Width="148px" OnClick="SearchButton_Click" style="height: 35px" /> 文本框是否有回发?因为如果您更改文本框中的文本,它将在您离开文本框时进行回发。因此,如果您单击

我的searchbutton click事件中有一些验证代码,并且一直存在问题,必须单击两次才能正常工作。 Asp代码:

        <asp:Button ID="SearchButton" runat="server" Text="Search" Width="148px" OnClick="SearchButton_Click"  style="height: 35px" />

文本框是否有回发?因为如果您更改文本框中的文本,它将在您离开文本框时进行回发。因此,如果您单击按钮,文本框的回发将触发

我会用java选中文本框

添加页面加载事件“将EditGroup更改为要检查的TextBoxName”

这将向文本框添加一个onchange事件,当您单击该按钮时,它将调用aspx页面中的java函数

然后在aspx页面中添加“再次将EditGroup更改为要检查的文本框的名称”


函数SomeTextChanged(){
输入的变量=document.getElementById(“”);
if(Entered.value!=“”&&!Entered.value.match(“^[0-9A-Za-z]+$”)
{
警告(“不允许使用特殊字符”);
document.getElementById(“”).value=“”;
}
其他的
{
}
}
因此,如果您输入了不允许输入的内容,您将收到一条消息,“不允许使用特殊字符”
这也将阻止页面执行按钮单击事件中的其余代码。

您还需要清空文本框“我知道这可能不是最好的方法,但是如果您不清空文本框,用户将再次单击按钮,它将不会运行java代码,因为文本没有更改”


因此,如果文本是好的,java脚本将什么也不做,按钮单击事件将在aspx页面中触发按钮的触发器
PostBacks
。。你能在.cs文件中显示你的
页面加载的
代码是什么样子吗。。?也可以使用这个
Response.Redirect(“results.aspx”)
而不是
SearchButton.PostBackUrl=“resuts.aspx”@MethodMan是对的。第一次单击按钮时,将设置按钮的
PostBackUrl
值。第二次单击时,可以使用该值。因此,请尝试
响应。按照建议重定向
。问题在于它似乎没有将任何数据发布到下一页。我真正想让它做的是,只有在正则表达式验证的情况下才回发。你的意思是什么
问题是,它似乎没有将任何数据发布到下一页
请解释你试图做什么,以及你对术语
回发
的理解好吧,我可能应该从第一步开始。这一点的关键是,我试图防止使用regex在文本框中输入特殊字符,如果它有效,我将尝试将页面上的数据发布到结果页面。我决定对按钮控件进行验证,这似乎是一个错误,因为response.redirect似乎将数据发布到下一页。
protected void SearchButton_Click(object sender, EventArgs e)
{
        string title = TitleSearch.Text;
        Regex rgx = new Regex("^[0-9A-Za-z ]+$");
        if (title != "" && !rgx.IsMatch(title))
        {
            ErrorLabel.Text = "Special characters are not allowed";
        }
        else
        {
             SearchButton.PostBackUrl = "results.aspx";

        }
}
EditGroup.Attributes.Add("onchange", "return SomeTextChanged();");
<script type="text/javascript">
function SomeTextChanged() {
    var Entered = document.getElementById('<%= EditGroup.ClientID %>');
    if (Entered.value != "" && !Entered.value.match("^[0-9A-Za-z ]+$"))
    {
        alert("Special characters are not allowed");
        document.getElementById('<%= EditGroup.ClientID %>').value = '';
    }
    else
    {
    }
}
</script>