PDA

View Full Version : ناپدید نشدن Required Field Validatorها با PostBack



bftarane
جمعه 29 فروردین 1393, 17:09 عصر
سلام.
فرض کنید این کدها رو داریم

<body>
<form id="form1" runat="server">
<asp:DropDownList ID="drp1" runat="server" AutoPostBack="True" >
<asp:ListItem Value="-1">--Please Choose--</asp:ListItem>
<asp:ListItem Value="1">Sale</asp:ListItem>
<asp:ListItem Value="2">PreSale</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="RequiredFieldValidator" InitialValue="-1" ControlToValidate="drp1"></asp:RequiredFieldValidator>




<asp:DropDownList ID="drp2" runat="server" AutoPostBack="True" >
<asp:ListItem Value="-1">--Please Choose--</asp:ListItem>
<asp:ListItem Value="1">Sale</asp:ListItem>
<asp:ListItem Value="2">PreSale</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="RequiredFieldValidator" InitialValue="-1" ControlToValidate="drp2"></asp:RequiredFieldValidator>
<br />
<br />
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
</form>
</body>
یعنی دو تا دراپ دان داریم که هر کدوم یه RequiredFieldValidator دارن که اگه مقدار دراپ دان 1- باشه و دکمه کلیک بشه یه پیغام نشون داده میشه
حالا مشکلم اینه که فکر کنید دو تا دراپ دان در حالت انتخاب کنید قرار دارن
حالا دکمه رو که کلیک کنی به ازای هر دراپ دان یه پیغام نشون میده
بعد از دراپ دان اول که چیزی غیر از انتخاب کنید رو انتخاب می کنم خوب طبیعی هست که پیغام اول می ره
ولی متأسفانه چون PostBack اتفاق می افته پیغام مربوط به دراپ دان دوم هم ناپدید میشه، آیا راهی نداره که این اتفاق نیفته؟ یعنی پیغام مربوط به دراپ دان دوم در صفحه باقی بمونه تا وقتی که خودش مقدارش عوض بشه (یعنی Value اش چیزی غیر از 1- بشه)؟؟؟
امیدوارم تونسته باشم منظورم رو برسونم.

ممنون.

bftarane
جمعه 29 فروردین 1393, 17:31 عصر
CausesValidation="true" اضافه کردن این کد به dropdown ای که باعث postback میشه فعلاً مشکل رو حل می کنه ولی مشکل دیگه ای پیش می یاره اونم اینه که

ظاهراً این کار باعث میشه دراپ دان پست بک نشه چون من در SelectedIndexChanged این دراپ دان یه دراپ دان دیگه رو فعال می کردم که حالا دیگه فعال نمیشه.

meysam99
شنبه 30 فروردین 1393, 00:53 صبح
خوب وقتی dropdown اولی تغییر میکنه مگه نباید دومی هم تغییر بکنه؟
بعد dropdown دومی احتیاجی به AutoPostBack="True" ندارد. البته باز بستگی به نوع طراحی داره.
اگه با تغییر ولی دومی dropdown هم باید تغییر کنه در page load این تغییر را اعمال کنی مشکل حل می شود

bftarane
شنبه 30 فروردین 1393, 08:53 صبح
مسئله postback دراپ دان دوم نیست اینجا.
و در ضمن این یه مثال ساده بود که من زدم و در پروژه واقعی من با تعداد بیشتری دراپ دان و کنترلهای دیگه سروکار دارم که نیازه هم postback اتفاق بیفته و هم فیلدهای دیگه ErrorMessage اشون با پست بک کنترلهای دیگه از بین نره.
یه مثال واقعی پیدا کردم:
این لینک رو ببینید لطفاً:
http://http://delta.ir/FreeRegister/AddFileDetailIntro.aspx?w=a
اول روی دکمه مرحله بعد کلیک کنید حالا کلی ErrorMessage دیده میشه به رنگ قرمز
حالا استان یا شهر رو انتخاب کنید
می بینید که پست بک اتفاق می افته ولی ارورهای کنترلهای دیگه همچنان در صفحه باقیه تا وقتی که اون کنترلهای با مقدار مناسب پر بشن.
بچه ها خیلی مهمه این قضیه، چون کارفرما خیلی روی جزئیات حساسه و به احتمال خیلی قوی این مسئله رو گوشزد خواهد کرد. منتظر راهنمایی هستم.