TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
hisanth nithi
NA
30
9.3k
FindControl() returns null when searching for dynamic contro
May 4 2018 12:27 AM
In my requirement I am creating dynamic controls by two events
Dropdownlist OnSelectedIndexChanged event
Onclick button event
In OnSelectedIndexChanged event i have created number of dynamic textbox.
Here I have create two dynamic textboxes.
I am getting all enquiry product list based on enquiry number from the dynamic textboxes on button click event
All are dynamic controls
While saving the productlist the checkbox control return null value
protected
void
ddlenqChaged(
object
sender, EventArgs e)
{
getenqTextbox();
}
protected
void
btnSearchClick(
object
sender, EventArgs e)
{
tblbill.Visible =
true
;
if
(Convert.ToString(ViewState[
"Generated"
]) !=
"true"
)
{
CreateDynamicControls();
ViewState[
"Generated"
] =
"true"
;
}
}
protected
void
getenqTextbox()
{
enqPanel.Controls.Clear();
if
(Convert.ToInt32(ddlNoofEnq.SelectedValue) > 0)
{
for
(
int
i = 1; i <= Convert.ToInt32(ddlNoofEnq.SelectedValue); i++)
{
TextBox _txtCode =
new
TextBox();
_txtCode.ID =
"txtEnqqNo"
+ i;
_txtCode.Attributes.Add(
"ClientIDMode"
,
"Static"
);
_txtCode.Width = 75;
_txtCode.CssClass =
"AtCompleteByEnq"
;
enqPanel.Controls.Add(_txtCode);
}
}
}
protected
void
CreateDynamicControls()
{
int
m = 1;
//int encount = click.buttonclick;
if
(Convert.ToInt32(ddlNoofEnq.SelectedValue) > 0)
{
Table tbldynamic =
new
Table();
for
(
int
k = 1; k <= Convert.ToInt32(ddlNoofEnq.SelectedValue); k++)
{
Panel1.Controls.Clear();
TextBox tb = (TextBox)enqPanel.FindControl(
"txtEnqqNo"
+ k);
if
(tb !=
null
)
{
if
(!String.IsNullOrEmpty(tb.Text))
{
List<Enquiry_ProductListBLL> objlst = Enquiry_ProductListBLL.GetEnquiry_ProductListBLLs(tb.Text);
foreach
(Enquiry_ProductListBLL item
in
objlst)
{
TableRow tr =
new
TableRow();
TableCell tc =
new
TableCell();
TableCell tc1 =
new
TableCell();
TableCell tc2 =
new
TableCell();
TableCell tc3 =
new
TableCell();
TableCell tc4 =
new
TableCell();
TableCell tc5 =
new
TableCell();
TableCell tc6 =
new
TableCell();
Master_ProductBLL objpdt = Master_ProductBLL.GetMaster_ProductBLL(item.ProductId);
CheckBox _chkRowNo =
new
CheckBox();
_chkRowNo.ID =
"chkRowNo"
+ m;
_chkRowNo.Text = m.ToString();
_chkRowNo.Attributes.Add(
"ClientIDMode"
,
"Static"
);
_chkRowNo.Attributes.Add(
"onclick"
,
"getEnable(this);"
);
_chkRowNo.Checked =
true
;
TextBox _txtCode =
new
TextBox();
_txtCode.ID =
"txtCodeRow"
+ m;
_txtCode.Attributes.Add(
"ClientIDMode"
,
"Static"
);
_txtCode.Enabled =
false
;
_txtCode.Width = 75;
_txtCode.Attributes.Add(
"autocomplete"
,
"off"
);
_txtCode.Text = objpdt.Code;
HiddenField _hdnPdtId =
new
HiddenField();
_hdnPdtId.ID =
"hdnPdtId"
+ m;
_hdnPdtId.Value = item.ProductId.ToString();
HiddenField _hdEnqNo =
new
HiddenField();
_hdEnqNo.ID =
"hdEnqNo"
+ m;
_hdEnqNo.Value = item.EnqNo;
_hdnPdtId.Value = item.ProductId.ToString();
TextBox _txtPdtName =
new
TextBox();
_txtPdtName.ID =
"txtPdtNameRow"
+ m;
_txtPdtName.Attributes.Add(
"ClientIDMode"
,
"Static"
);
_txtPdtName.Enabled =
false
;
_txtPdtName.Width = 150;
_txtPdtName.CssClass =
"AtCompleteByName"
;
_txtPdtName.Text = objpdt.Name;
TextBox _txtQty =
new
TextBox();
_txtQty.ID =
"txtQtyRow"
+ m;
_txtQty.Width = 80;
_txtQty.MaxLength = 8;
_txtQty.Attributes.Add(
"ClientIDMode"
,
"Static"
);
_txtQty.Text = item.Count.ToString();
DropDownList ddlUnits =
new
DropDownList();
ddlUnits.ID =
"ddlUnits"
+ m;
ddlUnits.CssClass =
"dropdowncss"
;
ddlUnits.Width = 100;
Bindings.BindUnitName(ddlUnits);
ddlUnits.Items.FindByText(item.PP).Selected =
true
;
tc.Controls.Add(_chkRowNo);
tc1.Controls.Add(_txtCode);
tc2.Controls.Add(_txtPdtName);
tc2.Controls.Add(_hdnPdtId);
tc2.Controls.Add(_hdEnqNo);
tc3.Controls.Add(_txtBrand);
tc4.Controls.Add(_txtThickness);
tc5.Controls.Add(ddlUnits);
tc6.Controls.Add(_txtQty);
tc.Attributes.Add(
"Width"
,
"50px"
);
tr.Attributes.Add(
"id"
,
"Rowid"
+ m);
tr.Attributes.Add(
"class"
,
"paidRw"
);
tr.Cells.Add(tc);
tr.Cells.Add(tc1);
tr.Cells.Add(tc2);
tr.Cells.Add(tc3);
tr.Cells.Add(tc4);
tr.Cells.Add(tc5);
tr.Cells.Add(tc6);
tbldynamic.Rows.Add(tr);
m++;
}
}
}
}
Panel1.Controls.Add(tbldynamic);
}
}
Here I have override OnLoad event
protected
override
void
OnLoad(EventArgs e)
{
base
.OnLoad(e);
CreateDynamicControls();
getenqTextbox();
}
My problem is i cannot find controls from Panel1
CheckBox chk = (CheckBox)Panel1.FindControl(chkId);
if
(chk !=
null
)
{
if
(chk.Checked ==
true
)
{
//my process
}
}
FindControl returns null value.
Here I have create dynamic controls two times.
I cannot have any problem with enquiry textbox, it was created first, but the second time button click event controls are return null.
Reply
Answers (
4
)
How to make two label content as same.
[C#] How to select to report by day, month and year ???