PDA

View Full Version : رفع خطای Object reference not set to an instance of an object



hanan.f.1994
سه شنبه 23 اردیبهشت 1393, 19:37 عصر
سلام دوستان عصرتون بخیر

یه سوال داشتم
تو فرمم یه gridview دارم که تو تمپلتش یه textbox و si یه button دارم و می خوام برای هر رکوردم یک بار تکرار بشن و میخوام مثل کامت گذاری تو فیس بوک که زیر هر پست یه textbox هست متنی رو که تو تکس باکس نوشته میشه تو بانک ذخیره کنم
این کد رو نوشتم
TextBox txt = new TextBox();
txt = ((TextBox)(GridView1.FindControl("TextBox2")));
string s = txt.Text;
ولی موقع اجرا این خطا رو میده
object reference not set to an instance of an object
]چطور میتونم رفعش کنم ممنونم

meisam12
سه شنبه 23 اردیبهشت 1393, 20:38 عصر
اشتباهت اینجا است که می خواهی مستقیماً کنترلت را از گرید پیدا کنی در صورتی که باید ابتدا روی سطرهای گرید پیمایش کنی و کنترلت را در هر سطر از گرید پیدا کنی.


foreach(GridViewRow row in GridView1.Rows)
{
TextBox txt = row.FindControl("TextBox2") as TextBox;
}

hanan.f.1994
سه شنبه 23 اردیبهشت 1393, 21:25 عصر
معذرت میخوام این کد رو حتما باید تو وال row updaating نوشت یا هر جایی جواب میده من تو یک باتن نوشتم جواب نداد

meisam12
سه شنبه 23 اردیبهشت 1393, 21:30 عصر
این کد جواب می ده فرقی نمی کنه که کجا بنویسید.
html گریدت را بذار ببینم.

meisam12
سه شنبه 23 اردیبهشت 1393, 21:33 عصر
این هم یک نمونه برنامه کوچک
http://barnamenevis.org/attachment.php?attachmentid=118762&d=1399481117

hanan.f.1994
سه شنبه 23 اردیبهشت 1393, 21:42 عصر
اجازه دانلود نمیده

hanan.f.1994
سه شنبه 23 اردیبهشت 1393, 21:47 عصر
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"
Width="426px">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>'></asp:Label>
<br />
<asp:TextBox ID="TextBox3" runat="server" Height="69px"
Text='<%# Eval("note") %>' TextMode="MultiLine" Width="502px"></asp:TextBox>
<br />
<br />
<asp:TextBox ID="TextBox2" runat="server" Height="27px" Width="400px"></asp:TextBox>
<asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click1">Send Comment</asp:LinkButton>
<br />
<br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

</div>
</form>
</body>
</html>

meisam12
سه شنبه 23 اردیبهشت 1393, 21:54 عصر
اجازه دانلود نمیده

برو به پست http://barnamenevis.org/showthread.php?450913-%D8%AD%D8%B0%D9%81-%D9%BE%DB%8C%D8%A7%D9%85-%D8%A8%D9%87-%D8%B4%D8%B1%D8%B7%DB%8C-%DA%A9%D9%87-%DA%86%DA%A9-%D8%A8%D8%A7%DA%A9%D8%B3%D8%B4-%D8%AA%DB%8C%DA%A9-%D8%AE%D9%88%D8%B1%D8%AF%D9%87&p=2018651&viewfull=1#post2018651

hanan.f.1994
سه شنبه 23 اردیبهشت 1393, 22:17 عصر
textbox مورد نظر رو با این کد پیدا کردم ولی من textbox ردیفی که کلیک کردم رو می خوام لطفا کمکم کنید

foreach (GridViewRow gvr in GridView1.Rows)
{
TextBox txt = (TextBox)gvr.FindControl("TextBox2");
txt.Text="This Is";

}

meisam12
سه شنبه 23 اردیبهشت 1393, 23:14 عصر
یک نمونه پروژه کوچک آپلود کردم.