gridview data-bind中的问题。 [英] problem in gridview data-bind .
问题描述
嗨。
我的aspx页面中有一个SqlDataSource,它有一个默认的Select查询。我使用Gridview来显示SqlDataSource中的数据并启用分页。一切都还可以。
但是当我从代码隐藏更改选择数据源查询然后绑定gridview时,数据不会在所有页面中更改。只有当前页面数据改变,当在其他页面之间导航时再次看到OLD查询数据。
哪里有问题?
ASP.Net代码:
Hi .
I have a SqlDataSource in my aspx page and it had a default Select query . i used a Gridview for show the data in SqlDataSource and enabled paging . everything is OK .
But when i change Select query of datasource from code-behind and then Bind gridview , data doesn't change in all page . only current page data change and when navigate between other pages OLD query data seen again.
Where is problem ?
ASP.Net Code :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:test1ConnectionString %>" OnSelecting="SqlDataSource1_Selecting" SelectCommand="SELECT quran_simple.text, trjm_fa_ayati.tr AS Expr5
FROM trjm_fa_ayati INNER JOIN
quran_simple ON trjm_fa_ayati.ID = quran_simple.id"></asp:SqlDataSource>
</div>
<br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="text" HeaderText="text" SortExpression="text" />
<asp:BoundField DataField="Expr5" HeaderText="Expr5" SortExpression="Expr5" />
</Columns>
</asp:GridView>
<br />
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem>Test1</asp:ListItem>
<asp:ListItem>Test2</asp:ListItem>
<asp:ListItem>Test3</asp:ListItem>
</asp:DropDownList>
<br />
<br />
</form>
</body>
</html>
C#代码:
C# Code :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Query;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedIndex)
{
case 0:
SqlDataSource1.SelectCommand = "SELECT quran_simple.text, trjm_fa_moezzi.tr AS Expr5 FROM trjm_fa_moezzi INNER JOIN quran_simple ON trjm_fa_moezzi.ID = quran_simple.id";
GridView1.DataBind();
break;
case 1:
SqlDataSource1.SelectCommand = "SELECT quran_othmani.text, trjm_fa_makarem.tr AS Expr5 FROM trjm_fa_makarem INNER JOIN quran_othmani ON trjm_fa_makarem.ID = quran_othmani.id";
GridView1.DataBind();
break;
case 2:
SqlDataSource1.SelectCommand = "SELECT quran_othmani.text, trjm_fa_moezzi.tr AS Expr5 FROM trjm_fa_moezzi INNER JOIN quran_othmani ON trjm_fa_moezzi.ID = quran_othmani.id";
GridView1.DataBind();
break;
default:
break;
}
}
}
推荐答案
ConnectionStrings:test1ConnectionString %> OnSelecting = SqlDataSource1_Selecting SelectCommand = SELECT quran_simple.text,trjm_fa_ayati.tr AS Expr5
FROM trjm_fa_ayati INNER JOIN
quran_simple ON trjm_fa_ayati.ID = quran_simple.id > < / asp:SqlDataSource >
< / div >
< br / >
< asp:GridView ID = GridView1 runat = server AllowPaging = True AutoGenerateColumns = 错误 < span class =code-attribute> DataSourceID = SqlDataSource1 >
< 列 >
< asp:BoundField DataField = text HeaderText = text SortExpression = text / >
< asp:BoundField DataField = Expr5 HeaderText = Expr5 SortExpression = Expr5 / >
< /列 >
< / asp:GridView >
< br / >
< asp:DropDownList ID = DropDownList1 runat = server AutoPostBack = True OnSelectedIndexChanged = DropDownList1_SelectedIndexChanged >
< asp:ListItem > Test1 < / asp:ListItem < span class =code-keyword>>
< asp:ListItem > Test2 < / asp:ListItem >
< asp :ListItem > Test3 < / asp:ListItem >
< / asp:DropDownList >
< br / >
< br / >
< / form >
< /正文 >
< / html >
ConnectionStrings:test1ConnectionString %>" OnSelecting="SqlDataSource1_Selecting" SelectCommand="SELECT quran_simple.text, trjm_fa_ayati.tr AS Expr5 FROM trjm_fa_ayati INNER JOIN quran_simple ON trjm_fa_ayati.ID = quran_simple.id"></asp:SqlDataSource> </div> <br /> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="text" HeaderText="text" SortExpression="text" /> <asp:BoundField DataField="Expr5" HeaderText="Expr5" SortExpression="Expr5" /> </Columns> </asp:GridView> <br /> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem>Test1</asp:ListItem> <asp:ListItem>Test2</asp:ListItem> <asp:ListItem>Test3</asp:ListItem> </asp:DropDownList> <br /> <br /> </form> </body> </html>
C#代码:
C# Code :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Query;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedIndex)
{
case 0:
SqlDataSource1.SelectCommand = "SELECT quran_simple.text, trjm_fa_moezzi.tr AS Expr5 FROM trjm_fa_moezzi INNER JOIN quran_simple ON trjm_fa_moezzi.ID = quran_simple.id";
GridView1.DataBind();
break;
case 1:
SqlDataSource1.SelectCommand = "SELECT quran_othmani.text, trjm_fa_makarem.tr AS Expr5 FROM trjm_fa_makarem INNER JOIN quran_othmani ON trjm_fa_makarem.ID = quran_othmani.id";
GridView1.DataBind();
break;
case 2:
SqlDataSource1.SelectCommand = "SELECT quran_othmani.text, trjm_fa_moezzi.tr AS Expr5 FROM trjm_fa_moezzi INNER JOIN quran_othmani ON trjm_fa_moezzi.ID = quran_othmani.id";
GridView1.DataBind();
break;
default:
break;
}
}
}
实现gridview的page_indexchanging事件
并调用selectedchanged下拉列表
implement the page_indexchanging Event of gridview
and call selectedchanged of dropdownlist
protected void GridView1_PagIndexchangin(object sender, GridViewPageEventArgs e)
{
DropDownList1_SelectedIndexChanged(null,null)
}
这篇关于gridview data-bind中的问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!