PDA

View Full Version : سوال: برخورد با ارور Unable to cast object of type 'System.String' to type 'System.Data.DataRowView'



adineh67
یک شنبه 06 آذر 1390, 01:14 صبح
یه تیکه کد نوشتم به صورت زیر
protected void GridViewusers_RowDataBound(object sender, GridViewRowEventArgs e)
{

if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink hl = (HyperLink)e.Row.FindControl("HyperLink1");
hl.NavigateUrl = ((DataRowView)e.Row.DataItem)["url"].ToString(); //assign field value to its property from data source of GridView
hl.Text = ((DataRowView)e.Row.DataItem)["text"].ToString();
}


}

موقع اجرای برنامه با این ارور مواجه میشم
Unable to cast object of type 'System.String' to type 'System.Data.DataRowView'

علت چیه؟

aliyeh
یک شنبه 06 آذر 1390, 11:52 صبح
به جای e.Row.RowType
اینطوری بنویس
GridViewRow row = e.Row;
if (row.RowType != DataControlRowType.DataRow)

adineh67
یک شنبه 06 آذر 1390, 12:10 عصر
دوست عزیز این کارو که گفتین انجام دادم حالا روی این قسمت از کد
hl.NavigateUrl = ((DataRowView)e.Row.DataItem)["url"].ToString()
این ارور پیش میاد
Object reference not set to an instance of an object.

aliyeh
یک شنبه 06 آذر 1390, 12:30 عصر
حالا که e.Row رو داخل row ریختید باید به صورت زیر بنویسید:
((DataRowView)row.DataItem)["url"].ToString())
نام فیلد رو هم دوباره چک کنید.