Page.IsPostBack中绑定DataGrid(),还有你的sql有没有用参数什么,用了参数你要看看参数有没有取得值

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {

    string conn;
    conn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(".")+"..\\data\\MyData.mdb;";
                MyConnection=new OleDbConnection(conn);
    if(!IsPostBack)  
    {  
    OleDbDataAdapter MyCommand = new OleDbDataAdapter("select * from MyfirstTable",MyConnection);
    DataSet ds = new DataSet();
    MyCommand.Fill(ds,"MyfirstTable"); MyDataGrid.DataSource = ds.Tables["MyfirstTable"].DefaultView;
    MyDataGrid.DataBind();
        }

    }
    <%@ Page language="c#" Codebehind="Display.aspx.cs" AutoEventWireup="false" Inherits="WebApplication2.Display" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>Display</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <link href="css/css.css" rel="stylesheet" type="text/css">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <!-- #include file="inc/top2.inc -->
    <br>
    <form id="Display" method="post" runat="server">
    <table bgcolor=#99cc33 width=100% height=25><tr><td  width=100%>
    主题:</td></tr></table>
    <asp:DataGrid id="MyDataGrid" 
    OnPageIndexChanged="MyDataGrid_PageIndexChanged" 
    AllowPaging="True"
    PageSize="3"
    CssClass="datagrid"
    PagerStyle-Mode="NumericPages"
    BorderColor="#89BA89"  BorderStyle="None" BorderWidth="1px" BackColor="#DEEEDE" 
    CellPadding="4"
    AutoGenerateColumns="False"
    runat="server" ShowFooter="false" ShowHeader="false" Width=100% 
    PagerStyle-BorderStyle="Outset"  Visible="true">

    <Columns>
                     <asp:TemplateColumn ItemStyle-Width=15% HeaderText="HeaderText" >
        <ItemTemplate>
        <img src="<%# DataBinder.Eval(Container.DataItem,"头像")%>"><br><br>
        姓名:<%# DataBinder.Eval(Container.DataItem,"姓名")%> <br><br>
        性别:<%# DataBinder.Eval(Container.DataItem,"性别")%><br>
        </ItemTemplate>
            </asp:TemplateColumn>
                </Columns>
                <Columns>
                <asp:TemplateColumn>
                <ItemTemplate>
                <table border =0>
                <tr ><td  rowspan=1  bgcolor =#ff00ff>主题:<%# DataBinder.Eval(Container.DataItem,"爱好")%></td>
                </tr>
                <tr ><td rowspan =4>
                </td>
                </tr>
                
                </table>
                </ItemTemplate>
                </asp:TemplateColumn>
                </Columns>




    </asp:DataGrid>
    </form>
    <!-- #include file="inc/foot2.inc -->
    </body>
    </HTML>
      

  2.   

    把if(!IsPostBack)  {   }
    ---------------------------
    private void Page_Load(object sender, System.EventArgs e)
    {
        string conn;
        conn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath(".")+"..\\data\\MyData.mdb;";
        MyConnection=new OleDbConnection(conn);
        OleDbDataAdapter MyCommand = new OleDbDataAdapter("select * from MyfirstTable",MyConnection);
        DataSet ds = new DataSet();
        MyCommand.Fill(ds,"MyfirstTable");
        MyDataGrid.DataSource = ds.Tables["MyfirstTable"].DefaultView;
        MyDataGrid.DataBind();
    }
      

  3.   

    去掉if(!IsPostBack)  {   }
      

  4.   

    重新拉一个DataGrid进来,写相同的代码,绑定这个新的DataGrid,看出来不出来?
    有时候,是会莫名其妙的丢掉的。
      

  5.   

    现在我已经明白是怎么回事了。
    原来是private void Page_Load(object sender, System.EventArgs e)函数没运行啊。
    但是新的问题来了,,这个函数怎么会不运行呢???
    (我在这个函数里加的别的代码也没运行,所以我才知道的。)
      

  6.   

    private void InitializeComponent()
    {    
      //下面这句有没有?不是你删除了吧,应该自动带出来的
      this.Load += new System.EventHandler(this.Page_Load); }