J A*_*mes 2 c# asp.net gridview
这是这篇文章的延续,但添加了完整代码: ASP.NET - GridView,在代码中添加标题行
我正在尝试将<thead>和<tbody>标签添加到我的gridview控件中。
我尝试过的一切都不起作用。我继续收到错误:
The table must contain row sections in order of header, body, then footer.
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
LoadGridView();
}
protected DataView GetDataSource()
{
DataSet ds = new DataSet();
ds = GetDataset();
DataTable dtRequests = ds.Tables["Admin"];
DataView dv = new DataView(dtRequests);
if (ViewState["sortexpression"] != null)
{
dv.Sort = ViewState["sortexpression"].ToString() + " " + ViewState["sortdirection"].ToString();
}
else
{
dv.Sort = "dtRequestDate DESC";
}
ds.Dispose();
return dv;
}
private void LoadGridView()
{
gvShipments.DataSource = GetDataSource();
gvShipments.DataBind();
}
protected void Page_PreRender(object sender, EventArgs e)
{
if (gvShipments.Rows.Count > 0)
{
gvShipments.UseAccessibleHeader = true;
gvShipments.HeaderRow.TableSection = TableRowSection.TableHeader;
}
}
private DataSet GetDataset()
{
Tools oTools = new Tools();
SqlConnection conn = new SqlConnection(csShipping);
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "dbo.[cGetOpenShipments]";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = conn;
cmd.Connection.Open();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
da.SelectCommand = cmd;
da.Fill(ds, "Admin");
cmd.Connection.Close();
da.Dispose();
cmd.Dispose();
conn.Dispose();
return ds;
}
protected void gvShipments_Sorting(object sender, GridViewSortEventArgs e)
{
ViewState["sortexpression"] = e.SortExpression;
if (ViewState["sortdirection"] == null)
{
ViewState["sortdirection"] = "asc";
}
else
{
if (ViewState["sortdirection"].ToString() == "asc")
{
ViewState["sortdirection"] = "desc";
}
else
{
ViewState["sortdirection"] = "asc";
}
}
LoadGridView();
}
protected void gvShipments_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvShipments.PageIndex = e.NewPageIndex;
LoadGridView();
}
}
}
Run Code Online (Sandbox Code Playgroud)
发生这种情况的原因是因为您的 Gridview 中有此设置,并且它正在尝试在顶部上方生成一个寻呼机:
<PagerSettings Position="TopAndBottom" />
Run Code Online (Sandbox Code Playgroud)
如果您想在页眉和页脚中有一个寻呼机,您还必须分别将这些寻呼机设置为有TableRowSection.TableHeader和TableRowSection.TableFooter。
所以使用以下代码:
gvShipments.UseAccessibleHeader = true;
gvShipments.HeaderRow.TableSection = TableRowSection.TableHeader;
if (gvShipments.TopPagerRow != null)
{
gvShipments.TopPagerRow.TableSection = TableRowSection.TableHeader;
}
if (gvShipments.BottomPagerRow != null)
{
gvShipments.BottomPagerRow.TableSection = TableRowSection.TableFooter;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5021 次 |
| 最近记录: |