C# 在asp.net中必须单击两次按钮才能触发回发
我的searchbutton click事件中有一些验证代码,并且一直存在问题,必须单击两次才能正常工作。 Asp代码: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" /> 文本框是否有回发?因为如果您更改文本框中的文本,它将在您离开文本框时进行回发。因此,如果您单击
<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>