ورود

View Full Version : سوال: گرفتن مقدار لیبل درون گریدویو که به صورت eval بایند شده



moferferi
یک شنبه 06 اسفند 1391, 19:31 عصر
سلام.
من یه ستون در گرید دارم که توی اون سه تا رشته را بهم متصل میکنم و به این صورت بایند میکنم
<asp:TemplateField HeaderText="تاریخ مرخصی">
<ItemTemplate><asp:Label id="lbl1" runat="server">
<%#DataBinder.Eval(Container.DataItem, "DTy")%>/<%#DataBinder.Eval(Container.DataItem, "DTm")%>/<%#DataBinder.Eval(Container.DataItem, "DTd")%></asp:Label>
</ItemTemplate>
حالا میخوام مقدار این ستون را بگیرم
از طریق کد زیر
Label lbl1 = (Label)grid1.Rows[0].Cells[3].FindControl("lbl");
میخوام مقدارش را بگیرم که با خطای زیر مواجه میشم
Object reference not set to an instance of an object.

البته این را هم بگم که گرید من درون یک وب یوزرکنترله و پیج هم درون یک مستر پیج
که موقع نمایش ای دی اون به

ContentPlaceHolder1_ctl00_grid1_lbl1_1
تبدیل میشه.
کسی میتونه راهنمایی کنه.؟
فکر کنم باید از روش clintid استفاده کنم ولی درست بلد نیستم.
باتشکر

ahmad156
یک شنبه 06 اسفند 1391, 19:34 عصر
Label lbl1 = (Label)grid1.Rows[0].Cells[3].FindControl("lbl1");

شما دارین کد رو در سمت Server استفاده میکنین و ربطی به ClientID نداره

moferferi
یک شنبه 06 اسفند 1391, 21:04 عصر
من به این شکل عمل میکنم ولی هیچ مقداری را برنمیگردونه
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("col1", typeof(string)));
dt.Columns.Add(new DataColumn("col2", typeof(string)));
dt.Columns.Add(new DataColumn("col3", typeof(string)));
dt.Columns.Add(new DataColumn("col4", typeof(string)));
dt.Columns.Add(new DataColumn("col5", typeof(string)));
dt.Columns.Add(new DataColumn("col6", typeof(string)));
dt.Columns.Add(new DataColumn("col7", typeof(string)));
dt.Columns.Add(new DataColumn("col8", typeof(string)));
dt.Columns.Add(new DataColumn("col9", typeof(string)));
foreach (GridViewRow row in grid1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
DataRow dr = dt.NewRow();
dr["col1"] = row.Cells[0].Text;
dr["col2"] = row.Cells[1].Text;
dr["col3"] = row.Cells[2].Text;
Label lbl = (Label)row.Cells[3].FindControl("lbl1");
dr["col4"] = lbl.Text;
dr["col4"] = row.Cells[3].Text;
dr["col5"] = row.Cells[4].Text;
dr["col6"] = row.Cells[5].Text;
dr["col7"] = row.Cells[6].Text;
dr["col8"] = row.Cells[7].Text;
dr["col9"] = row.Cells[8].Text;
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
}
}