运行的时候无法看到DataGrid控件及数据,我已经把Visible设置为True了,为什么运行后总是看不到?望高手指点。代码如下using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace test
{
/// <summary>
/// document_get 的摘要说明。
/// </summary>
public class document_get : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button bt1;
protected System.Web.UI.WebControls.Button bt2;
protected System.Web.UI.WebControls.DataGrid dg1;
protected System.Web.UI.WebControls.Button bt3;
    

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
bt1.Attributes.Add("onclick","return getconfirm ();");
bt2.Attributes.Add("onclick","return getconfirm2 ();");
bt3.Attributes.Add("onclick","return getconfirm3 ();");
           myinit();

}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
 
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.dg1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.gb1_PageIndexChanged);
this.bt1.Click += new System.EventHandler(this.bt1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion void myinit()
{
string a1="zhang";
try
{

SqlConnection SqlConnection1=new SqlConnection((string)Application["sqlConnectionString"]);
SqlConnection1.Open();
string sql="select fromName,date,title,hurry,new from document_send where toName="+a1; 
SqlDataAdapter da=new SqlDataAdapter(sql,SqlConnection1);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
dg1.DataSource=ds.Tables["table1"].DefaultView;
dg1.DataBind();
dg1.CurrentPageIndex=0;

}
catch
{
}
finally
{

}

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

} private void gb1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dg1.CurrentPageIndex=e.NewPageIndex;
dg1.DataBind();
}
}
}附html代码:
<asp:datagrid id="dg1" style="Z-INDEX: 101; LEFT: 168px; POSITION: absolute; TOP: 96px" runat="server"
AutoGenerateColumns="False" PageSize="6" AllowPaging="True" Font-Size="Smaller" Height="240px"
Width="400px">
<Columns>
<asp:TemplateColumn HeaderText="选择">
<ItemTemplate>
<asp:CheckBox id="cb1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="fromName" ReadOnly="True" HeaderText="发件人"></asp:BoundColumn>
<asp:BoundColumn DataField="date" ReadOnly="True" HeaderText="日期"></asp:BoundColumn>
<asp:HyperLinkColumn DataTextField="title" HeaderText="主题"></asp:HyperLinkColumn>
<asp:BoundColumn DataField="hurry" ReadOnly="True" HeaderText="紧急程度"></asp:BoundColumn>
<asp:BoundColumn DataField="new" ReadOnly="True" HeaderText="是否阅读过"></asp:BoundColumn>
<asp:BoundColumn DataField="deadtime" ReadOnly="True" HeaderText="公文期限"></asp:BoundColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页"></PagerStyle>
</asp:datagrid>

解决方案 »

  1.   

    在页面初始化里面加上:
      if (!IsPostBack)
    {
    DataTable dt;
    dt = new DataTable();
    // 将 DataGrid 服务器控件绑定至 DataView
    DataGrid1.DataSource = new DataView(dt);
             DataGrid1.DataBind();
      

  2.   

    把你的myinit()方法中的try catch语句去掉,应该是try中的语句出错了,没有选出任何数据,但因为你加了try catch而在catch语句中没有执行任何操作,所以错误信息没法显示出来,你去掉后就应该看到出错信息了,很可能是sql语句的问题。
      

  3.   

    可能是SQL语句错,导致dataset里没有装入数据。
    string sql="select fromName,date,title,hurry,new from document_send where toName="+a1; 
    改为 string sql="select fromName,date,title,hurry,new from document_send where toName='"+a1+"'"; 试试看 字段toName应该是字符型吧
      

  4.   

    回webdiyer:
    厉害,非常感谢你,我照你方法后果真看到出错的信息,如下:列名 'zhang' 无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 列名 'zhang' 无效。源错误: 
    行 73:  da.Fill(ds,"table1");
    我已经修改好了,给大家看看我修改的地方:
    string a1="zhang";
    string sql="select fromName,date,title,hurry,new from document_send where toName='"+a1;
      

  5.   

    回lsharp:
    你说的也是对的。