前台界面如下:<%@ 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里面的界面
没有数据的时候
没有数据的时候全选有数据的时候有数据的时候全选
<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里面的界面
没有数据的时候
没有数据的时候全选有数据的时候有数据的时候全选
我也碰到这个问题,请将语句
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);
}
wwweasy,我先看看是不是你说的这样。谢谢你。