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后面的查询 主要是不会把结果绑定......谢谢谢谢 展开
前台部分代码:
<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后面的查询 主要是不会把结果绑定......谢谢谢谢 展开
1个回答
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();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询