gridview data-bind中的问题。 [英] problem in gridview data-bind .

查看:62
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆