主页按钮事件获胜';t在子页中激发
本文关键字:事件 按钮 获胜 主页 | 更新日期: 2023-09-27 18:29:34
我有一个母版页,其中包含一个带按钮的TextBox,当我在TextBox中键入内容并按ENTER键时,按钮的OnClick
事件会触发,它会将我重定向到Results.aspx?srch=searched_term
,这很好,到目前为止还很好,下面是代码:这在主页上:
<asp:Panel runat="server" DefaultButton="Button1">
<div class="form-group search input-group">
<span class="input-group-addon"><span class="glyphicon glyphicon-search"></span></span>
<asp:TextBox ID="search" placeholder="Cauta grup..." class="form-control" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" style="display:none" OnClick="btnSearch_Click" />
</div>
</asp:Panel>
这就是事件函数:
public void btnSearch_Click(object sender, EventArgs e)
{
var searchText = Server.UrlEncode(search.Text); // URL encode in case of special characters
Response.Redirect("~/Results.aspx?srch=" + searchText);
}
在
Results.aspx?srch=searched_term
上重定向并想再次搜索后,我键入TextBox并按Enter键,然后页面将重新加载并使用我搜索的第一个单词进行搜索。为什么它不使用新输入的关键字进行搜索?可能是什么问题?非常感谢。编辑:这是
Results.aspx
:中的Page_load
函数
protected void Page_Load(object sender, EventArgs e)
{
if(!String.IsNullOrEmpty(Request.QueryString["srch"]))
{
String srch = Request.QueryString["srch"];
var myControl = (TextBox)Master.FindControl("search");
myControl.Text = srch;
//perform search and display results
String connString = System.Configuration.ConfigurationManager.ConnectionStrings["GroupsConnString"].ToString();
conn = new MySql.Data.MySqlClient.MySqlConnection(connString);
conn.Open();
queryStr = "";
queryStr = "SELECT g.*,CONCAT(firstname,' ',lastname) as name FROM app_groups.groups g LEFT JOIN users u ON u.id = g.id_user WHERE group_name LIKE '%" + srch + "%' OR group_type LIKE '%" + srch + "%'";
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
reader = cmd.ExecuteReader();
gname = "";//group name
gtype = "";//group type
uname = "";//user name
id = "";
warning = "";
id_owner = "";
if (reader.HasRows)
{
while (reader.HasRows && reader.Read())
{
uname = reader.GetString(reader.GetOrdinal("name"));
gname = reader.GetString(reader.GetOrdinal("group_name"));
gtype = reader.GetString(reader.GetOrdinal("group_type"));
id = reader.GetString(reader.GetOrdinal("id"));
id_owner = reader.GetString(reader.GetOrdinal("id_user"));
warning = reader.GetString(reader.GetOrdinal("warning"));
Panel pan = new Panel();
pan.CssClass = "col-sm-4";
Panel subpan = new Panel();
subpan.CssClass = "group";
if (Session["uid"] != null)
{
int sess_id = Convert.ToInt32(Session["uid"]);
if ((Session["uid"] != null && Session["uadmin"].Equals("1")) || sess_id.Equals(Int32.Parse(id_owner)))
{
adminCtrls = new Panel();
adminCtrls.CssClass = "adminCtrls";
btn = new Button();//delete group button for admins and owners only
btn.Click += new EventHandler(deleteGroup);
btn.ID = "sterge";
btn.CssClass = "btn btn-danger btn-xs";
btn.Text = "Sterge grup";
btn.CommandArgument = id;
//btn.Attributes.Add("style", "float:right;");
adminCtrls.Controls.Add(btn);
if (Session["uadmin"].Equals("1"))
{
if (!warning.Equals("1"))
{
btn = new Button();//warn owner button for admins only
btn.Click += new EventHandler(warnOwner);
btn.ID = "warn";
btn.CssClass = "btn btn-warning btn-xs";
btn.Text = "Avertizeaza owner grup";
btn.CommandArgument = id;
adminCtrls.Controls.Add(btn);
}
else
{
btn = new Button();//warn owner button for admins only
btn.ID = "warn";
btn.Enabled = false;
btn.CssClass = "btn btn-warning btn-xs";
btn.Text = "A fost avertizat";
adminCtrls.Controls.Add(btn);
}
}
}
else
{
adminCtrls = null;
}
if (adminCtrls != null)
{
subpan.Controls.Add(adminCtrls);
}
}
subpan.Controls.Add(new LiteralControl("<span class='title text-center'>" + gname + "</span><br/>"));
subpan.Controls.Add(new LiteralControl("<span>Owner: <span class='owner'>" + uname + "</span></span><br/>"));
subpan.Controls.Add(new LiteralControl("<span>Categorie: <span class='type'>" + gtype + "</span></span><br/>"));
pan.Controls.Add(subpan);
groupsShow.Controls.Add(pan);
}
}
reader.Close();
conn.Close();
}
}
不管是IsPostBack
问题,新函数看起来是这样的:
protected void Page_Load(object sender, EventArgs e)
{
if(!String.IsNullOrEmpty(Request.QueryString["srch"]))
{
String srch = Request.QueryString["srch"];
if (!IsPostBack)
{
var myControl = (TextBox)Master.FindControl("search");
myControl.Text = srch;
}
//perform search and display results
String connString = System.Configuration.ConfigurationManager.ConnectionStrings["GroupsConnString"].ToString();
conn = new MySql.Data.MySqlClient.MySqlConnection(connString);
conn.Open();
queryStr = "";
queryStr = "SELECT g.*,CONCAT(firstname,' ',lastname) as name FROM app_groups.groups g LEFT JOIN users u ON u.id = g.id_user WHERE group_name LIKE '%" + srch + "%' OR group_type LIKE '%" + srch + "%'";
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
reader = cmd.ExecuteReader();
gname = "";//group name
gtype = "";//group type
uname = "";//user name
id = "";
warning = "";
id_owner = "";
if (reader.HasRows)
{
while (reader.HasRows && reader.Read())
{
uname = reader.GetString(reader.GetOrdinal("name"));
gname = reader.GetString(reader.GetOrdinal("group_name"));
gtype = reader.GetString(reader.GetOrdinal("group_type"));
id = reader.GetString(reader.GetOrdinal("id"));
id_owner = reader.GetString(reader.GetOrdinal("id_user"));
warning = reader.GetString(reader.GetOrdinal("warning"));
Panel pan = new Panel();
pan.CssClass = "col-sm-4";
Panel subpan = new Panel();
subpan.CssClass = "group";
if (Session["uid"] != null)
{
int sess_id = Convert.ToInt32(Session["uid"]);
if ((Session["uid"] != null && Session["uadmin"].Equals("1")) || sess_id.Equals(Int32.Parse(id_owner)))
{
adminCtrls = new Panel();
adminCtrls.CssClass = "adminCtrls";
btn = new Button();//delete group button for admins and owners only
btn.Click += new EventHandler(deleteGroup);
btn.ID = "sterge";
btn.CssClass = "btn btn-danger btn-xs";
btn.Text = "Sterge grup";
btn.CommandArgument = id;
//btn.Attributes.Add("style", "float:right;");
adminCtrls.Controls.Add(btn);
if (Session["uadmin"].Equals("1"))
{
if (!warning.Equals("1"))
{
btn = new Button();//warn owner button for admins only
btn.Click += new EventHandler(warnOwner);
btn.ID = "warn";
btn.CssClass = "btn btn-warning btn-xs";
btn.Text = "Avertizeaza owner grup";
btn.CommandArgument = id;
adminCtrls.Controls.Add(btn);
}
else
{
btn = new Button();//warn owner button for admins only
btn.ID = "warn";
btn.Enabled = false;
btn.CssClass = "btn btn-warning btn-xs";
btn.Text = "A fost avertizat";
adminCtrls.Controls.Add(btn);
}
}
}
else
{
adminCtrls = null;
}
if (adminCtrls != null)
{
subpan.Controls.Add(adminCtrls);
}
}
subpan.Controls.Add(new LiteralControl("<span class='title text-center'>" + gname + "</span><br/>"));
subpan.Controls.Add(new LiteralControl("<span>Owner: <span class='owner'>" + uname + "</span></span><br/>"));
subpan.Controls.Add(new LiteralControl("<span>Categorie: <span class='type'>" + gtype + "</span></span><br/>"));
pan.Controls.Add(subpan);
groupsShow.Controls.Add(pan);
}
}
reader.Close();
conn.Close();
}
}