asp.net中点击按钮查询的结果 用gridview显示 200

我用一个名为“MuDi”的dropdownlist、一个名为“RiQi”的textbox和一个名为“ChuFa”的dropdownlist做查询,查询出来的结果要放在gr... 我用一个名为“MuDi”的dropdownlist、一个名为“RiQi”的textbox和一个名为“ChuFa”的dropdownlist做查询,查询出来的结果要放在gridview里,
前台部分代码:
<tr>
<td align="center" height="40" style=" text-align: center">
<asp:Button ID="search" runat="server" Font-Size="12pt" OnClick="search_Click"
Text="查询" /></td>
</tr>
<tr>
<asp:GridView ID="GridView1" runat="server"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="JingJinChengJiWeb" Width="1000px"
>
<Columns>
<asp:BoundField DataField="CheCiName" HeaderText="车次名" InsertVisible="False"
ReadOnly="True" SortExpression="CheCiName" />
<asp:BoundField DataField="ChuFaTime" HeaderText="出发时间"
SortExpression="ChuFaTime" />
<asp:BoundField DataField="DaoDaTime" HeaderText="到达时间" SortExpression="DaoDaTime" />
</Columns>
</asp:GridView>
</tr>

后台代码:
using System.Collections;

using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class SearchCheCi : System.Web.UI.Page
{
SQL data = new SQL();
protected void search_Click(object sender, EventArgs e)
{
if (ChuFa.SelectedItem.Text.Length == 0 || MuDi.SelectedItem.Text.Length == 0 || RiQi.Text.Length == 0)
{
Response.Write("<script language='javascript'>alert('三个选项都选择后才能查询!')</script>");
}
else

{ 查询出 这三个条件选定值后对应的结果,把结果绑定gridview

}
}

我这样运行不了,说我DataSourceID不对?!,求大神帮写下 else后面的查询 主要是不会把结果绑定......谢谢谢谢
展开
 我来答
匿名用户
2018-04-04
展开全部

把HTML里的DataSourceID="JingJinChengJiWeb"  这个代码移除。

SQL应该如下:这里,有一点需要强调:SQL里增加了一个  where 1=1  因为where 第一个条件不能带 and,所以,人为增加 where 1=1 后,后面每个查询,可以直接写 and 

string sql=" select * from table  where 1=1 ";

if(ChuFa.SelectedItem.Text.Length!=0)

{
   sql+="  and chufa='"+ChuFa.SelectedItem.Text+"'";

}

if(MuDi.SelectedItem.Text.Length!=0)

{
   sql+="  and mudi='"+MuDi.SelectedItem.Text+"'";

}

if(RiQi.Text.Length!=0)

{
   sql+="  and riqi='"+RiQi.Text+"'";

}

 string con = "server=.\sqlexpress;database=aaaa;uid=sa;pwd=123456";
        System.Data.DataSet ds = new System.Data.DataSet();
        System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(con, sql);
        da.Fill(ds);
        GridView1.DataSource=ds;
        GridView1.Bind();
更多追问追答
追问
大神~用你这个显示“System.Web.UI.WebControls.GridView”不包含“Bind”的定义  怎么办QAQ
追答

抱歉,写错了,应该是  GridView1.DataBind(),不是 GridView1.Bind()

完整如下:HTML页面,增加分页事件:其他HTML代码不变。

<asp:GridView ID="GridView1" runat="server" 
 
 Width="1000px" 
AllowPaging="true"
PageSize="10"
OnPageIndexChanging="GridView1_PageIndexChanging"
>

后台,首先自定义一个Bind函数,函数内容就是上面回复的所有代码,直接放到Bind函数里

  public void Bind()
    {

string sql=" select * from table  where 1=1 "; 
 
 ...//代码和上面回复的一样
 
        GridView1.DataSource=ds;
         GridView1.DataBind
        }

然后在Button的查询事件里,调用这个事件:那个JS脚本,推荐用RegisterClientScriptBlock,因为Response会把JS生产页面最顶部。

protected void search_Click(object sender, EventArgs e)
{
if (ChuFa.SelectedItem.Text.Length == 0 || MuDi.SelectedItem.Text.Length == 0 || RiQi.Text.Length == 0)
{
    
      Page.RegisterClientScriptBlock("bad", "<script >alert('三个选项都选择后才能查询!')</script>");

}
else



    Bind();

}

在分页事件里,也调用Bind,以便支持分页。

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
     {
        GridView1.PageIndex = e.NewPageIndex;
        Bind();
    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式