前台界面如下:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication_GridView._Default" %><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>GridView变形</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td>用户名:<asp:TextBox ID="TextBoxUserName" runat="server"></asp:TextBox>
                    <asp:Button ID="ButtonSelect" runat="server"  Text="查询" OnClick="ButtonSelect_Click"/></td>
            </tr>
        </table>
        <table>
            <tr>
                <td>用户列表:</td>
            </tr>
            <tr>
                <td>
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="UserID">
                        <Columns>
                            <asp:TemplateField HeaderText="全选">
                                <HeaderTemplate>
                                    <asp:CheckBox ID="CheckBoxSelectALL" runat="server" AutoPostBack="True" OnCheckedChanged="CheckBoxSelectALL_CheckedChanged" />
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="CheckBoxSelect" runat="server" />
                                </ItemTemplate>
                                <ItemStyle Width="100px" />
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="序号">
                                <ItemStyle Width="100px" />
                            </asp:TemplateField>
                            <asp:BoundField DataField="UserName" HeaderText="用户名" >
                                <ItemStyle Width="100px" />
                            </asp:BoundField>
                            
                            <asp:BoundField DataField="UserAge" HeaderText="年龄">
                                <ItemStyle Width="100px" />
                            </asp:BoundField>
                            <asp:TemplateField HeaderText="操作">
                                <ItemStyle Width="100px" />
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>
                </td>
            </tr>
        </table>
        <table>
            <tr>
                <td><asp:Button ID="ButtonDeleteSelected" runat="server" Text="删除所选" /></td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>
后台代码如下:    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridViewBind("select * from Users");
            }
        }        //GridView绑定
        private void GridViewBind(string sqlString)
        {
            //
            string sqlConnString = @"server=WWW-F30969C25B8\LOCALHOST;database=test;uid=sa;pwd=momaer";
            SqlConnection conn = new SqlConnection(sqlConnString);
            SqlCommand cmd = new SqlCommand(sqlString, conn);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataSet myDataSet = new DataSet();
            adapter.Fill(myDataSet);
            GridView1.DataSource = myDataSet.Tables[0];
            GridView1.DataBind();            if (myDataSet.Tables[0].Rows.Count <= 0)
            {
                //GridView2.Enabled = true;
                DataRow row = myDataSet.Tables[0].NewRow();
                myDataSet.Tables[0].Rows.Add(row);
                GridView1.DataSource = myDataSet.Tables[0];
                GridView1.DataBind();                int count = GridView1.HeaderRow.Cells.Count;
                GridView1.Rows[0].Cells.Clear();
                GridView1.Rows[0].Cells.Add(new TableCell());
                GridView1.Rows[0].Cells[0].Text = "没有找到符合条件的数据!";
                GridView1.Rows[0].Cells[0].ColumnSpan = count;                
                return;
            }        
        }        //全选
        protected void CheckBoxSelectALL_CheckedChanged(object sender, EventArgs e)
        {
            //全选
            if ((GridView1.Rows.Count <= 1) && (GridView1.Rows[0].Cells.Count <= 1))
            {
                ((CheckBox)sender).Checked = false;
                return;
            }            bool isSelectAll = ((CheckBox)sender).Checked;
            CheckBox temp;
            foreach (GridViewRow row in GridView1.Rows)
            {
                temp = (CheckBox)row.Cells[0].FindControl("CheckBoxSelect");
                temp.Checked = isSelectAll;
            }
        }        //查询
        protected void ButtonSelect_Click(object sender, EventArgs e)
        {
            string userName = TextBoxUserName.Text.Trim();
            string sqlString = "select * from Users where UserName like '%"+userName+"%'";
            GridViewBind(sqlString);
        }
    }在有数据的情况下,点击页面上的button,CheckBox后GridView都不会变形,但是在没有数据的时候,点击会变形,
我想请教大家哪里出错了?
附上图:
VS里面的界面
没有数据的时候
没有数据的时候全选有数据的时候有数据的时候全选

解决方案 »

  1.   

    不用发图片了,你一定是用程序输出了<script></script>
    我也碰到这个问题,请将语句
    Response.Write( "<script language='JavaScript'>alert('弹出信息');</script>");改为:
    thorwfn("弹出信息");
        public void thorwfn(string sMessage)
        {
            string str = "<script>alert('" + sMessage + "');</script>";
            Type type = base.GetType();
            base.ClientScript.RegisterStartupScript(type, "Js", str);
        }
      

  2.   

    贴子编辑不了,图片看不到了,大家就将就着看代码吧。
    wwweasy,我先看看是不是你说的这样。谢谢你。
      

  3.   

    wwweasy,你再看看我的代码,前台后台我都没有用到javascript啊
      

  4.   

    图片可以看了,在http://topic.csdn.net/u/20090916/11/ed9fee74-1e62-4fce-a1f4-4aff64f0a305.html这个上面。