++++++++++++搜索结果显示在GridView控件上的问题!~有高手吗?帮小弟想想对策!!++++++++++++

piovt25728 2009-05-06 10:37:39


如上图所示,图片链接如果防盗链请复制地址查看!

我搜索lcd 显示了相关的内容,然后我点某一条数据的Change,是Show的换为Hide,是Hide是转换为Show!(此功能已实现)

现在最主要的是当我点了Change之后,页面重新刷新,不会返回之前搜索的结果。我想点Change之后,搜索结果不发生变化,怎么解决啊!!




附代码:(各位看看怎么改)


protected void Page_Load(object sender, EventArgs e)
{
if (Session["_AdminUser"] == null || Session["_Pm"].ToString().Trim() != "Manager")
{
Response.Write("<script>alert('Sorry,You are not Persissions!');top.window.location.href='Login.aspx';</script>");
}

if (Request["shopid"] != null)
{
try
{
SqlConnection conn0 = new SqlConnection("Data Source=plesksql1.ehosting.com;Database=ukmobi;Uid=ukmobi;Pwd=123456");
conn0.Open();
string sql;
if (Request.QueryString["import"] == "False")
{
sql = "update shop_snsn set Stock_import=1 where shopid=" + Request.QueryString["shopid"];
}
else
{
sql = "update shop_snsn set Stock_import=0 where shopid=" + Request.QueryString["shopid"];
}
SqlCommand sc0 = new SqlCommand(sql, conn0);
sc0.ExecuteNonQuery();
conn0.Close();

this.bind();
}
catch
{
Response.Write("<script>alert('shopid is error!');history.back(-1);</script>");
}
}
}
public void bind()
{
System.Collections.ArrayList a = new System.Collections.ArrayList();
string s = SearchText.Text.Trim();
string[] ss = s.Split(' ');
foreach (string si in ss)
{
a.Add(si);
}
//for (int i = 0; i < ss.Length; i++)
//{
// Response.Write(ss[i] + "<br>");
//}

string sql = "select top 100 * from shop_snsn ";
for (int i = 0; i < ss.Length; i++)
{
if (i == 0)
{
sql = sql + "where shopname like '%" + ss[i] + "%' ";
}
else
{
sql = sql + "and shopname like '%" + ss[i] + "%' ";
}
}
//Response.Write(sql);
SqlConnection conn = new SqlConnection("Data Source=plesksql1.ehosting.com;Database=ukmobi;Uid=ukmobi;Pwd=123456");
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "shop_snsn");
GridView1.DataSource = ds.Tables["shop_snsn"];
GridView1.DataKeyNames = new string[] { "shopid" };
GridView1.DataBind();
conn.Close();
}
protected void Search_Click(object sender, EventArgs e)
{
this.bind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
this.bind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
try
{
switch (e.Row.Cells[4].Text)
{
case "True":
e.Row.Cells[4].Text = "<font color=green>Show</font>";
break;
case "False":
e.Row.Cells[4].Text = "<font color=gray>Hide</font>";
break;
}
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
}
}

...全文
166 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
piovt25728 2009-05-12
  • 打赏
  • 举报
回复
还没解决,我自己去解决吧!


不过谢谢各位了,平分了!
piovt25728 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 yeskele 的回复:]
post不回造成textbox里的文本丢失。除非你禁用了viewstate
[/Quote]

可是我是重定向实现的啊。。代表已经转到下一个页面了,你说会不会丢失啊!

我现在不想这个了,我想用button事件解决。。用button执行SQL语句
yeskele 2009-05-07
  • 打赏
  • 举报
回复
post不回造成textbox里的文本丢失。除非你禁用了viewstate
piovt25728 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 yeskele 的回复:]
你直接提交就行,他的querystring还会在那的。不用担心
如果你实在是担心这些ID会掉,那你可以在第一次载入的时候把这些ID用viewstate保存起来
[/Quote]

呵呵,这个和QueryString没关系,那个只是Change的转向。。
我主要是担心textbox里的文字不见了。
我就想问一下,怎么不重定向就可以执行update语句。。。。这个方法最好了!
yeskele 2009-05-07
  • 打赏
  • 举报
回复
你直接提交就行,他的querystring还会在那的。不用担心
如果你实在是担心这些ID会掉,那你可以在第一次载入的时候把这些ID用viewstate保存起来
乌鸦 2009-05-07
  • 打赏
  • 举报
回复
你可以自己在mocode里写个方法,
public static void MsgNoPostBack(string msg, Page p)
{
p.ClientScript.RegisterStartupScript(p.GetType(), DateTime.Now.ToString() + DateTime.Now.Millisecond, "alert('" + msg + "');location.replace(location.href);", true);
}

public static void MsgToUrl(string msg,string url, Page p)
{
p.ClientScript.RegisterStartupScript(p.GetType(), DateTime.Now.ToString() + DateTime.Now.Millisecond, "alert('" + msg + "');location.href='"+url+"';", true);
}
一个回传,一个不回。
feifeiyiwen 2009-05-06
  • 打赏
  • 举报
回复
up
piovt25728 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yeskele 的回复:]
就用button提交不行么?
[/Quote]

不知道如何去搞,重要的是,不知道怎么去传递ID值。。。
yeskele 2009-05-06
  • 打赏
  • 举报
回复
就用button提交不行么?
piovt25728 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yeskele 的回复:]
chang的时候直接页面提交,不用重新指向,这样就不用页面初始化了。
不知道你change方法的具体情况,只好说个大概了
[/Quote]

本来刚刚开始的时候打用一个Button写change事件的,可是试了很久不知道怎么弄。后来还是搞了重新指向了!
piovt25728 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yeskele 的回复:]
chang的时候直接页面提交,不用重新指向,这样就不用页面初始化了。
不知道你change方法的具体情况,只好说个大概了
[/Quote]

你的意思是什么,能说详细一下吗?
如果可以,我乐意改我的Change方法,因为我不熟悉其它方法,就重定向了!如果有Ajax的方法也可以。

就说说你刚刚说的那个不用重新指向的方法吧。
yeskele 2009-05-06
  • 打赏
  • 举报
回复
chang的时候直接页面提交,不用重新指向,这样就不用页面初始化了。
不知道你change方法的具体情况,只好说个大概了
piovt25728 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yeskele 的回复:]
你是不是change的时候右重新指向本页面了?
刷新之后是不是连搜索栏里的查询关键字都不见了?
如果是这样的话,原因很简单,你又做了一次页面初始化,所以你的搜索条件全部被清空了
[/Quote]
嗯,没错。。有什么好的办法解决!!??
yeskele 2009-05-06
  • 打赏
  • 举报
回复
你是不是change的时候右重新指向本页面了?
刷新之后是不是连搜索栏里的查询关键字都不见了?
如果是这样的话,原因很简单,你又做了一次页面初始化,所以你的搜索条件全部被清空了
piovt25728 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zzxap 的回复:]
change后调用一次绑定方法。
[/Quote]

我的Change动作:Pro_Website.aspx?shopid=147&import=False
zzxap 2009-05-06
  • 打赏
  • 举报
回复
change后调用一次绑定方法。


llsen 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 piovt25728 的回复:]
引用 2 楼 yeskele 的回复:
呵呵,不好意思,看错了
你应该在pageload里把this.bind放在!(page.ispostback)里面

!(page.ispostback)
{
this.bind();
}


不好意思,请看清代码,我是搜索之后才显示GridView的。。 再说你的思路也不对,因为我的搜索和显示在同一个页面上!
[/Quote]

就是把load里面的代码全部加上
if (!IsPostBack)
{
。。。
}
piovt25728 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yeskele 的回复:]
呵呵,不好意思,看错了
你应该在pageload里把this.bind放在!(page.ispostback)里面

!(page.ispostback)
{
this.bind();
}
[/Quote]

不好意思,请看清代码,我是搜索之后才显示GridView的。。 再说你的思路也不对,因为我的搜索和显示在同一个页面上!
yeskele 2009-05-06
  • 打赏
  • 举报
回复
呵呵,不好意思,看错了
你应该在pageload里把this.bind放在!(page.ispostback)里面

!(page.ispostback)
{
this.bind();
}
yeskele 2009-05-06
  • 打赏
  • 举报
回复
可以改写bind方法,把搜索关键字作为参数
入private void bind(string searchKey)
{
// your code;
}
加载更多回复(3)

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧