问一问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语句。。总的来说还是很简单,运行一下高歌的例子,自己调调就差不多了
------解决方案--------------------