日期:2014-05-19  浏览次数:20416 次

问一问gridview + objectdatasource + textbox + button查询的问题。
同一个页面:

一个gridview,一个objectdatasource,一个textbox,一个button

想实现:
1.   一进入页面就先显示所有数据
2.把查询条件输入textbox,点击button,gridview绑定源的条件where   name=textbox.text,   查不到数据就提示“没有找到数据”

3.,如果不输入查询条件(即textbox为空白时)点击button就显示全部数据而不会因为没有参数而出错

我现在在数据层返回了两个datatable
datatable1   (Select   *   FROM   Product_Info)
datatble2   (Select   *   FROM   Product_Info   where   name   =   textbox.text)

要怎么实现page_load就绑定datatable1   ,Button_Click就绑定dataable2啊?

或者要怎么实现我要的效果?

------解决方案--------------------
用模糊查询没有参数也不会出错,而会显示所有的数据
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
BindData();// 在此处放置用户代码以初始化页面
}

private void ssbmBtn_Click(object sender, System.EventArgs e)
{

dgShow.DataSource = ×××××; dgShow.DataBind();
}
------解决方案--------------------
private void ssbmBtn_Click(object sender, System.EventArgs e)
{
if(this.textbox.text <> " ")
{

dgShow.DataSource = ×××××; // 如果输入查询条件,就显示查询结果
dgShow.DataBind();
}

else
{
dgShow.DataSource = ×××××; //如果不输入查询条件,就显示全部数据而
dgShow.DataBind();
}
end if


}

------解决方案--------------------
楼上你VB与C#混用厉害。。。
思路完全正确。
------解决方案--------------------
private void BindGridView(string strField)
{
SqlConnection cn;
SqlCommand cmd;
SqlDataReader dr;

cn = new SqlConnection(connectionString);

string strSQL = null;

if (strField.Length == 0)
strSQL = "Select * FROM Product_Info ";
else
strSQL = "Select * FROM Product_Info where name = ' " + strField + " ' "; //这里用参数更好
cmd = new SqlCommand(strSQL, cn);
cn.Open();
dr = cmd.ExecuteReader();

DataView1.DataSource = dr;
DataView1.DataBind();

dr.Close();
cn.Close();
}


private void Page_Load(object sender, System.EventArgs e)
{
if (! IsPostBack )
{
BindGridView( " ");
}
}

private void button1_Click(object sender, System.EventArgs e)
{
if(this.TextBox1.Text.Trim().Length == 0)
{
BindGridView( " ");
}
else
{
BindGridView(this.TextBox1.Text.Trim());
}
}
------解决方案--------------------
amandag(高歌)
-------------
整解,牛啊
------解决方案--------------------
objectdatasource是可以设置参数的
1、参数来源
2、默认值
------解决方案--------------------
leo_boy(www.morock.net) ( ) 信誉:90 Blog 加为好友 2007-05-04 10:03:55 得分: 0


也就是說根本不用objectdatasource?


--------

一般来说你用了datatable, objectdatasource就没有机会出场了。
------解决方案--------------------
小型不需要用objectdatasource,除非你自己想练手

用高歌的方法对的。。

两个技术点,一个绑定、一个SQL语句。。总的来说还是很简单,运行一下高歌的例子,自己调调就差不多了
------解决方案--------------------