DataGrid中创建复杂表头方法

有时候经常在DataGrid有复杂表头的显示要求但DataGrid本身并不提供这方面的解决方法,现在对这个问题做个讨论

1)添加一个table
创建跨多列、多行表头的DataGrid[http://www.csdn.net/Develop/Read_Article.asp?Id=18971]
这是CSDN中net_lover的一个文章可以
个人观点:可以解决一些问题,但并不能冶本,只是冶标而已.

2)在Pager中添加
这也是CSDN的一个文章,具体方法是在Pager创建时将Pager列去掉而和Header一起形成两行表头(注Pager会在Header前先建立)
但要添加三行以上时...可能会有点麻烦,对二行来说是最好的选择了

3)我现在介绍另一种利用JavaScript来形成表头的方法.
[个人感觉还好..能形成复杂的表头]

其它就不多说了就把这个代码写一下,希望对大家有帮助

SqlConnection Cn=new

SqlConnection(System.Configuration.ConfigurationSettings.AppSettings.Get("Cnstr"));
SqlDataAdapter SqlDa=new SqlDataAdapter("SELECT * FROM jobs",Cn);
DataSet ds=new DataSet();
SqlDa.Fill(ds);
this.DataGrid1.DataSource=ds;
this.DataGrid1.DataBind();


string javaScript;
javaScript="<script language='javascript'>";


javaScript+=@"
function addrow()
{
var oRow=document.all(obs).insertRow(0);
var oCell0=oRow.insertCell();
with(oCell0)
{
innerText='hello';

}
var oCell1=oRow.insertCell();
with(oCell1)
{
innerText='Kitty';
}
var oCell2=oRow.insertCell()
with(oCell2)
{
innerText='Lvl';
colSpan='2';
}

}
addrow();
";
javaScript=javaScript.Replace("obs","'" + this.DataGrid1.ClientID +"'");
javaScript+="<";
javaScript+=@"/";
javaScript+="script>";

Page.RegisterStartupScript("ss",javaScript);


以上代码是对pubs数据库的操作
总体来说是用insertRow()和insertCell()来进行的..
然后用with(oCell)来进行里面的样式控制..

你可能感兴趣的:(datagrid)