这是我的代码:请问如何在动态的添加一列,如<td class='textCenter'><%# Eval(arylst[0].ToString())%></td>,要求和红列并排
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table cellspacing='0' cellpadding='0' border="0px">
<tr>
<td id="gridViewTd">
<table border='1' >
<tr class='light'>
<td id="<%# Eval(cnkeyField)%>">
<asp:Image ID="Image1" runat="server" ImageUrl="../images/FolderClose.gif" />
</td>
<td class='textCenter'><%# Eval(arylst[0].ToString())%></td>
</tr>
</table>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<table cellspacing='0' cellpadding='0' border="0px">
<tr>
<td id="gridViewTd">
<table border='1' >
<tr class='light'>
<td id="<%# Eval(cnkeyField)%>">
<asp:Image ID="Image1" runat="server" ImageUrl="../images/FolderClose.gif" />
</td>
<td class='textCenter'><%# Eval(arylst[0].ToString())%></td>
</tr>
</table>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
public partial class ManagementSystem_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
GridView1.DataSource = BuildGridViewDataSource();
GridView1.DataBind();
} /// <summary>
/// 用来做例子中的数据源
/// </summary>
/// <returns></returns>
private DataTable BuildGridViewDataSource()
{
DataTable dt = new DataTable();
dt.Columns.Add("Number");
dt.Columns.Add("Name"); DataRow dr = dt.NewRow();
dr["Number"] = "1000";
dr["Name"] = "张三";
dt.Rows.Add(dr); dr = dt.NewRow();
dr["Number"] = "1001";
dr["Name"] = "李四";
dt.Rows.Add(dr); return dt;
} protected void Button1_Click(object sender, EventArgs e)
{
BoundField nameColumn = new BoundField();
nameColumn.HeaderText = "姓名";
nameColumn.DataField = "Name"; GridView1.Columns.Add(nameColumn);
GridView1.DataSource = BuildGridViewDataSource();
GridView1.DataBind();
}
}
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="操作">
<HeaderTemplate>
<asp:CheckBox ID="CB_AllSelect" runat="server" onclick="SelectAll(this)" Text="选择所有" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CB_Select" runat="server" Text="选择数据" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Number" HeaderText="编号" />
</Columns>
</asp:GridView>
<asp:CheckBox ID="CheckBox1" runat="server" onclick="a(this);" />
<br />
<asp:Button ID="Button1" runat="server" OnClientClick="BeforeSubmit()" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html> <script type="text/javascript">
function BeforeSubmit()
{
var gridView = document.getElementById("<%=GridView1.ClientID%>"); //只遍历GridView中的CheckBox;
var inputs=gridView.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++)
{
if(inputs[i].type="checkbox" && inputs[i].checked==true)
return true;
}
alert("请选择数据");
return false;
}
function SelectAll(obj)
{
var gridView = document.getElementById("<%=GridView1.ClientID%>");
//只遍历GridView中的CheckBox;
var inputs=gridView.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++)
{
if(inputs[i].type="checkbox")
inputs[i].checked=obj.checked;
}
}
</script>
如下:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//给新加的列绑定值,新加的列的列数
if (e.Row.Cells.Count == 3)
{
if (e.Row.Cells[2] != null && e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[2].Text = e.Row.RowIndex.ToString(); //e.Row.RowIndex,可换成你要绑定的值
}
}
}
我还没接触过ajax,请多多指点,呵呵
我的問題是不會正確的運用gridview.columns.add()函數,現在明白了,謝謝
我发现this.GridView1.Columns只有add这个方法,没有addat这个方法,怎么能实现真正的动态???
this.gridview1.columns.insert() 可以添加到指定的位置