public class GridViewTemplate:System.Web.UI.ITemplate
{ private DataControlRowType templateType; //列类型 private string columnName; //列名 private string cId; //id号 public GridViewTemplate ( DataControlRowType type, string colname, string controlId) {
templateType = type; columnName = colname; cId = controlId;
} public void InstantiateIn(System.Web.UI.Control container)
{ switch (templateType)
{ case DataControlRowType.Header: CheckBox myChkbx = new CheckBox(); myChkbx.ID = cId; myChkbx.Text = "全选"; container.Controls.Add(myChkbx); break; case DataControlRowType.DataRow: CheckBox cb = new CheckBox(); cb.ID = cId; //cb.DataBinding += new EventHandler(this.TextBoxDataBinding); container.Controls.Add(cb); break; }
} }使用页
private void DynamicGridView(string table, string filed)
{
TitleGridView.Columns.Clear();
TitleGridView.AutoGenerateColumns = false;
TitleGridView.DataKeyNames = new string[] { "numb" }; TemplateField tf = new TemplateField();
tf.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "全选", "chkAllrow");
tf.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "", "ccc");
tf.HeaderStyle.CssClass = "checkColumn";
TitleGridView.Columns.Add(tf); HyperLinkField hlf = new HyperLinkField();
hlf.DataTextField = filed;
hlf.DataNavigateUrlFields = new string[] { "numb" };
hlf.HeaderText = "标题";
hlf.HeaderStyle.CssClass = "headercss";
hlf.DataNavigateUrlFormatString = "~/ArticleManage/ReadNews.aspx?numb={0}&tableName=" + table;
hlf.Target = "_blank";
TitleGridView.Columns.Add(hlf);
BoundField bfColumn = new BoundField();
bfColumn.DataField = "print_date";
bfColumn.HeaderText = "日期";
bfColumn.DataFormatString = "{0:d}";
bfColumn.HeaderStyle.CssClass = "printDate";
TitleGridView.Columns.Add(bfColumn);
}protected void btnAddQuote_Click(object sender, EventArgs e)
{for (int i = 0; i < TitleGridView.Rows.Count; i++)
{
if (TitleGridView.Rows[i].RowType == DataControlRowType.DataRow)
{
GridViewRow row = TitleGridView.Rows[i];// refTable,refField,refNumb,refDate|refTable,refField,refNumb,refDate
bool isChecked = ((CheckBox)row.Cells[0].FindControl("ccc")).Checked;提示:未将对象引用设置到对象的实例
{ private DataControlRowType templateType; //列类型 private string columnName; //列名 private string cId; //id号 public GridViewTemplate ( DataControlRowType type, string colname, string controlId) {
templateType = type; columnName = colname; cId = controlId;
} public void InstantiateIn(System.Web.UI.Control container)
{ switch (templateType)
{ case DataControlRowType.Header: CheckBox myChkbx = new CheckBox(); myChkbx.ID = cId; myChkbx.Text = "全选"; container.Controls.Add(myChkbx); break; case DataControlRowType.DataRow: CheckBox cb = new CheckBox(); cb.ID = cId; //cb.DataBinding += new EventHandler(this.TextBoxDataBinding); container.Controls.Add(cb); break; }
} }使用页
private void DynamicGridView(string table, string filed)
{
TitleGridView.Columns.Clear();
TitleGridView.AutoGenerateColumns = false;
TitleGridView.DataKeyNames = new string[] { "numb" }; TemplateField tf = new TemplateField();
tf.HeaderTemplate = new GridViewTemplate(DataControlRowType.Header, "全选", "chkAllrow");
tf.ItemTemplate = new GridViewTemplate(DataControlRowType.DataRow, "", "ccc");
tf.HeaderStyle.CssClass = "checkColumn";
TitleGridView.Columns.Add(tf); HyperLinkField hlf = new HyperLinkField();
hlf.DataTextField = filed;
hlf.DataNavigateUrlFields = new string[] { "numb" };
hlf.HeaderText = "标题";
hlf.HeaderStyle.CssClass = "headercss";
hlf.DataNavigateUrlFormatString = "~/ArticleManage/ReadNews.aspx?numb={0}&tableName=" + table;
hlf.Target = "_blank";
TitleGridView.Columns.Add(hlf);
BoundField bfColumn = new BoundField();
bfColumn.DataField = "print_date";
bfColumn.HeaderText = "日期";
bfColumn.DataFormatString = "{0:d}";
bfColumn.HeaderStyle.CssClass = "printDate";
TitleGridView.Columns.Add(bfColumn);
}protected void btnAddQuote_Click(object sender, EventArgs e)
{for (int i = 0; i < TitleGridView.Rows.Count; i++)
{
if (TitleGridView.Rows[i].RowType == DataControlRowType.DataRow)
{
GridViewRow row = TitleGridView.Rows[i];// refTable,refField,refNumb,refDate|refTable,refField,refNumb,refDate
bool isChecked = ((CheckBox)row.Cells[0].FindControl("ccc")).Checked;提示:未将对象引用设置到对象的实例
解决方案 »
- 关于项目使用neatupload上传控件并配置到域名后不显示进度条的问题
- 还是关于CheckBoxList。
- ASP.NET读取Cookies显示乱码???
- t-sql 数据类转换
- 请问现在ASP NET和MS SQL最高版本是什么?
- 怎么在文本焦点处插入文字(在线)
- IndexOf取路径老不成功,请求各位帮助!
- 大家看看,ASPNET的这个语句应该怎么写啊<a href=reply.aspx?id=<%response.write(request.querystring("id"))%> target=_self>
- VS2005去弄这个
- 高分+急切--求教!在同一个项目中,怎么让vb.net和c#同时同存!(在线等待!!!)
- 开发 WebForm 设计器
- 哪位大侠能给个新闻图片切换的flash或代码啊?
Debug调试下看看哪步出错,再找原因
{
CheckBox= (CheckBox)gr.FindControl("ccc");
}
修改看看
那个CCC不是控件名吧?是列的名称吧……
bool isChecked = ((CheckBox)row.Cells[0].FindControl("ccc")).Checked;
这里的FindControl的参数是具体控件的名称,用CheckBox的名称不知道我的理解对不对,总之就是找不到名为CCC的控件
<input id="TitleGridView_ctl02_ccc" type="checkbox" name="TitleGridView$ctl02$ccc" />
<input id="TitleGridView_ctl03_ccc" type="checkbox" name="TitleGridView$ctl03$ccc" />