当前位置: 代码迷 >> ASP.NET >> repeater里的取列值有关问题,代码如下
  详细解决方案

repeater里的取列值有关问题,代码如下

热度:3900   发布时间:2013-02-25 00:00:00.0
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 = bookEncode(Convert.ToString(thisRow[ "ask_type "]));
}
}
}

好象可以
  相关解决方案