PDA

View Full Version : سوال: ساخت RequiredFieldValidator در زمان اجرا



mpmsoft
شنبه 30 آذر 1387, 20:35 عصر
دوستان من در زمان اجرا یکسری Textbox ایجاد می کنم و به ازای هر یک از Textbox های یک RequiredFieldValidator برای اون ایجاد می کنم و توسط کد زیر تنظیمات مربوطه رو انجام می دم


ولی RequiredFieldValidator کار نمی کنه مشکله کد من چیه ؟





Dim Vld As New RequiredFieldValidator

Txt.ID = "txt_" & Split(Dst.Tables(0).Rows(0).Item("Details").ToString, "-")(i)
Vld.ID = "vld_" & Split(Dst.Tables(0).Rows(0).Item("Details").ToString, "-")(i)

Vld.ControlToValidate = Txt.ID
Vld.ErrorMessage = "لطفا این فیلد را وارد کنید"

mahdi_farhani
یک شنبه 01 دی 1387, 10:52 صبح
1-آیا از Ajax استفاده میکنی ؟
2-اگر داخل حلقه هست ولیدیتورت حتماً New بشه

mpmsoft
یک شنبه 01 دی 1387, 11:32 صبح
آیا از Ajax استفاده میکنی ؟

خیر


اگر داخل حلقه هست ولیدیتورت حتماً New بشه

بله به این شکل هست به مشکلی هم در کد بر نمی خورم ولی تست می کنم کار نمی کنه

mahdi_farhani
یک شنبه 01 دی 1387, 12:02 عصر
میشه کدتون رو بزارید

Chabok
یک شنبه 01 دی 1387, 12:49 عصر
با سلام

کنترل های Validator مثل هر کنترلی باید روی صفحه ایجاد شوند .
شما باید یک PlaceHolder و یا هر کنترلی که Container باشد روی صفحه بزارید و این کنترلی که ساخته اید را به آن اضافه کنید :


MyPlaceHolder.Controls.Add(MyValidator)

موفق باشید . خدانگهدار

mpmsoft
یک شنبه 01 دی 1387, 15:45 عصر
دوست عزیز حتما باید توی PlaceHolder قرار بگیره ؟

من به ازای هر TextBox یک Validator گذاشتم پس بنابراین چه نیازی هست من از کدی که شما قرار دادید استفاده کنم ؟
MyPlaceHolder.Controls.Add(MyValidator)


من کنترلها رو در Table گذاشتم


میشه کدتون رو بزارید

کد رو در بالا قرار دادم فقط این کد توی یک For هست همین

فقط به همین ترتیب من TextBox ها رو هم می سازم

mahdi_farhani
یک شنبه 01 دی 1387, 20:50 عصر
TextBox myText = new TextBox();
RequiredFieldValidator myValidator = new RequiredFieldValidator();
myText.ID = "myText_" + i.ToString();
myValidator.ID = "myVal_" + i.ToString();
myValidator.ControlToValidate = myText.ID;
myValidator.ErrorMessage = "aaa";
row_1.Controls.Add(myText);
row_1.Controls.Add(myValidator);
این کد جواب میده

mpmsoft
یک شنبه 01 دی 1387, 23:07 عصر
دوست عزیز کدی که من نوشتم هم مثل کدی هست که شما نوشتید ولی باز هم زمانی که بروی دکمه ذخیره کلیک می کنم عملیات انجام نمی شه

البته دوست عزیز من یک دکمه از نوع Image Button بروی همون فرم گذاشتم احتمال داره مشکل از اینجا باشه

آیا این کنترلها و دکمه ذخیره باید در یک group باشند ؟



For i = 0 To i2

Dim Tr As New TableRow
Dim TC1 As New TableCell
Dim TC2 As New TableCell

Dim Txt As New TextBox
Dim Lbl As New Label
Dim Vld As New RequiredFieldValidator

Tr.ID = "TR_" & i
TC1.ID = "TC_" & i
TC2.ID = "TC2_" & i


Lbl.ID = "Lbl_" & Split(Dst.Tables(0).Rows(0).Item("Details").ToString, "-")(i)
Lbl.Text = Split(Dst.Tables(0).Rows(0).Item("Details").ToString, "-")(i)
TC1.Controls.Add(Lbl)
TC1.BackColor = Drawing.Color.Aqua


Txt.ID = "txt_" & Split(Dst.Tables(0).Rows(0).Item("Details").ToString, "-")(i)
Vld.ID = "vld_" & Split(Dst.Tables(0).Rows(0).Item("Details").ToString, "-")(i)
Vld.ControlToValidate = Txt.ID


Vld.ErrorMessage = "لطفا این فیلد را وارد کنید"
'Vld.Validate()


Vld.SetFocusOnError = True


Txt.Visible = True


TC2.Controls.Add(Txt)
TC2.Controls.Add(Vld)

Tr.Cells.Add(TC1)
Tr.Cells.Add(TC2)

Table1.Rows.Add(Tr)


Next

mahdi_farhani
دوشنبه 02 دی 1387, 21:57 عصر
دوست گرامی اگر صفحتون را بزارید زودتر به نتیجه میرسید .