repeater里的取列值问题,代码如下?
public void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
DataRowView item = e.Item.DataItem as DataRowView;
string ReceiveUnitName =item[ "ReceiveUnitName "].ToString();
Response.Write(ReceiveUnitName);
}
ReceiveUnitName是列名;
出现的异常是:System.NullReferenceException:
未将对象引用设置到对象的实例。
问题出在string ReceiveUnitName=item[ "ReceiveUnitName "].ToString();
这一行?
------解决方案--------------------System.Web.UI.WebControls.RepeaterItem可以转换成System.Data.DataRowView吗?
我在MSDN中怎么没查到继承关系???
Repeater使用的是Template,item[ "ReceiveUnitName "]这种语法我想是不适用的。
------解决方案--------------------取什么值?
取服务器控件的值?用FindControl方法
------解决方案--------------------if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView thisRow = (DataRowView)e.Item.DataItem;
if (thisRow != null)
{
Label ip = (Label)e.Item.FindControl( "labelip ");
if (ip != null)
{
ip.Text = book.htmlEncode(Convert.ToString(thisRow[ "ask_type "]));
}
}
}
好象可以