当前位置:编程学习 > C#/ASP.NET >>

在调用实现ITemplate接口处错请高人帮我看看

在调用实现ITemplate接口处错请高人帮我看看

TemplateColumn s=new TemplateColumn();
s.HeaderText="ID";
LabelTemplate s1 =new LabelTemplate ();
s.ItemTemplate= s1;
MyList.Columns.AddAt(MyList.Columns.Count,s);



public class LabelTemplate : ITemplate
{
// Instantiate the elements of the template in the given
// container. In this case, a DataGridItem element.
  public void InstantiateIn(Control container) 
  {
   container.Controls.Add(new LiteralControl("<b>"));
   Label lblID = new Label();
   lblID.DataBinding += new EventHandler(this.BindID);
   container.Controls.Add(lblID);
   container.Controls.Add(new LiteralControl("</b>, "));
  }
// Handler of the OnDataBinding event for the Label element
// that renders the ID column in the template.
private void BindID(Object sender, EventArgs e)
{
   Label l = (Label) sender;
   DataGridItem container = (DataGridItem)
   l.NamingContainer;
   l.Text = ((DataRowView)container.DataItem)["DLID"].ToString();
}
}

报错的信息
指定的转换无效。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidCastException: 指定的转换无效。

源错误: 


行 75:  Label l = (Label) sender;
行 76:  DataGridItem container = (DataGridItem) l.NamingContainer;
行 77:  l.Text = ((DataRowView)container.DataItem)
行 78:  ["DLID"].ToString();
行 79:  }
 

源文件: c:\inetpub\wwwroot\webadex\logiclayer\business.cs    行: 77 --------------------编程问答-------------------- :( 
--------------------编程问答-------------------- 我在给加50分 --------------------编程问答-------------------- lblID.DataBinding += new EventHandler(this.BindID);
这一行里把this去掉改成lblID.DataBinding += new EventHandler(BindID);试试 --------------------编程问答-------------------- 不行, 是l.Text = ((DataRowView)container.DataItem)
  ["DLID"].ToString();
我的Datagrid读取的是SqlDataReader --------------------编程问答-------------------- 但是点击页面的按钮就会PostBack回来,CheckBox的状态就没法保存  
   
  如何处理? --------------------编程问答-------------------- 楼主这个问题有解决不? --------------------编程问答-------------------- ["DLID"] 换成索引号,[0]之类的东东。 --------------------编程问答-------------------- 我的错误是
private void DataBinding(object sender, EventArgs e)
{
try
{
Label l = (Label) sender;
DataGridItem container = (DataGridItem)l.NamingContainer;
l.Text = ((DataRowView)container.DataItem)["classname"].ToString();
}
catch (Exception caught)
{
string ss = caught.Message;
ss = "";
}
}
Label l = (Label) sender;这个代码报错,错误信息:"指定的转换无效。"
请问这么解决??? --------------------编程问答-------------------- 这个问题解决了 确实是类型错了 
应该是用Literal类型
但如果DataGraid里面是TextBox的 怎么样把数据库的内容绑定到TextBox呢 --------------------编程问答-------------------- 我现在不怎么用datagrid 而是自己写
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,