PDA

View Full Version : پیغامی مبنی بر تایید ثبت اطلاعات در دیتابیس



SAMARE
چهارشنبه 06 آبان 1388, 13:02 عصر
سلام دوستان برنامه نویس
من در قسمت مدیریت خبر سایتم میخوام اگه خبر درج شد پیغامی مبنی بر درج موفقیت آمیز خبر به مدیر داده شده و وقتی دکمه ok زده شد به صفحه ی دیگری منتقل بشه
میخوام پنجره ای که در آن پیغام داده میشود دارای عنوانی مناسب با آیکونی مناسب تایید باشه
ممنونم

raziee
چهارشنبه 06 آبان 1388, 13:18 عصر
میتونید از کنترل های ایجکس استفاده کنید.

<asp:Panel ID="pnlMessage" runat="server" Visible="false">
<div style="background-color:#ccd9e8; font-weight:bold; text-align:right;
padding:5px;
color:#154291; border:solid 2px #88a0be;">
پیام سیستم :
<br />
<div style="background-color:#e0e8f3; font-weight:normal; padding:5px;
color:Black; border:solid 1px #6593cf;">
<asp:Label ID="lblMessage" runat="server" />
</div>
</div>
</asp:Panel>
<AjaxToolkit:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtenderpnlMessage"
runat="server"
TargetControlID="pnlMessage"
VerticalSide="Top"
VerticalOffset="15"
HorizontalSide="Right"
ScrollEffectDuration=".2"
HorizontalOffset="25">
</AjaxToolkit:AlwaysVisibleControlExtender>
بعد از ثبت پنل رو نمایش بدید و در پنل دکمه ای برای ریدایرکت شدن بگذارید.

SAMARE
پنج شنبه 07 آبان 1388, 12:53 عصر
راه دیگری غیر از استفاده کردن از کنترل های ایجکس وجود نداره؟؟؟

khorsandreza
جمعه 08 آبان 1388, 01:15 صبح
میتونید از کنترل های ایجکس استفاده کنید.

<asp:Panel ID="pnlMessage" runat="server" Visible="false">
<div style="background-color:C#‎‎cd9e8; font-weight:bold; text-align:right;
padding:5px;
color:#154291; border:solid 2px #88a0be;">
پیام سیستم :
<br />
<div style="background-color:#e0e8f3; font-weight:normal; padding:5px;
color:Black; border:solid 1px #6593cf;">
<asp:Label ID="lblMessage" runat="server" />
</div>
</div>
</asp:Panel>
<AjaxToolkit:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtenderpnlMessage"
runat="server"
TargetControlID="pnlMessage"
VerticalSide="Top"
VerticalOffset="15"
HorizontalSide="Right"
ScrollEffectDuration=".2"
HorizontalOffset="25">
</AjaxToolkit:AlwaysVisibleControlExtender>
بعد از ثبت پنل رو نمایش بدید و در پنل دکمه ای برای ریدایرکت شدن بگذارید.

اين روش بدي نيست ولي يک اشکال دارد اگر در فرم DropDownList با RadioButtonList قرار بگيره بالاتر از فرم نمايش دهنده پيام قرار ميگيره علتش چيست؟

iman_ad
جمعه 08 آبان 1388, 01:24 صبح
من همیشه از استور پروسجر استفاده می کنم، می تونی اگه ترانزاکشن موفقیت آمیز بود، مقدار 1 برگردونی.

meysampaknahad
جمعه 08 آبان 1388, 01:36 صبح
سلام
می تونی کدت رو داخل یه Try قرار بدی. اگه دستورات با موفیقت اجرا بشن پیغام مورد نظرت نشون داده بشه و اگر به مشکلی بر یخوره پیغام قسمت catch اجرا بشه.


try
{
//کدهای مورد نظرت رو اینجا بنویس
.
.
.
.
.
lblResult.Text = "اطلاعات با موفقیت ثبت شد";

}
catch
{
lblResult.Text = "کاربر گرامی عملیات با شکست مواجه شد . لطفاً مجدداً تلاش نمایید ";
}

hamid64_rs
جمعه 08 آبان 1388, 03:20 صبح
در طراحی صفحات وب فقط با کد جاوا اسکریپ و دستور alert میشه یه پیغام رو بصورت پنجره متداول ویندوزی به کاربر نشون داد .این روش در قدیم خیلی معمول بود اما امروز با کمک css روش دیگه ای بوجود اومده که این امکان رو به کاربر میده که پنجره پیغام رو هرجور که دلش میخاد طراحی کنه نه صرفا به شکل پنجره های معمول ویندوزی (که محدودیت بسیاری داره ).در این روش یک div بصورت absolute تعریف میشه و کدهای پنجره ای رو که میخاین نمایش داده بشه داخلش قرار میدین :



<"div id="light" class="white_content" dir="rtl" runat="server>

</br/><br>اطلاعات با موفقیت درج شد</br>

<a/>بازگشت<"a href="redirect_page.aspx>


<div/>

<div id="fade" class="black_overlay" runat="server"></div>

Div اول (light) حاوی کد html مربوط به پنجره هست که هرطور خواستین میتونین طراحیش کنین و هرچی خواستین میتونین داخلش قرار بدین در مثال من یه پنجره کوچیکه که داخلش یه پیغام و یه لینک برای رفتن به یه صفحه دیگه هست .div دوم باعث میشه که هنگام نمایش پیغام صفحه بطور نیمه شفاف کدر بشه بطوری که کنترلهای زیرین پیغام غیرقابل دسترسی خواهند بود .راستی دوتا style زیر رو هم در head صفخه قرار بدین (مربوط به شکل div ها میشن)


.black_overlay}

display: none;

position: absolute;

top: 0;

left: 0;

width: 100%;

height: 100%;

background-color: black;

z-index:1001;

-moz-opacity: 0.8;

opacity:.80;

filter: alpha(opacity=80);

{

.white_content}

display: none;

position: absolute;

top: 35%;

left: 35%;

width: 25%;

height: 15%;

padding: 16px;

border: 16px solid orange;

background-color: white;

z-index:1002;

overflow: auto;

{
همونطور که در style هردوتا div میبینید مقدار display هردو برابر با none هست که این باعث میشه هیچکدوم نمایش داده نشن .حالا باید کاری کرد که هنگامی که مثلا روی دکمه insert کلیک شد و صفحه postback کرد پنجره نمایش داده بشه .برای این کار در event مربوط به دکمهinsert بعد از اینکه کدهای مربوط به درج تموم شد کد زیر رو بنویس :




;"light.Style["display"] = "block



fade.Style["display"]="block";





میبینی که این روش خیلی آسون و کم دردسریه که به لطف css فراهم شده .

khorsandreza
جمعه 08 آبان 1388, 09:11 صبح
پست #7





به تصوير پيوست توجه کنيد.

اين خط فرمانها در Event کليدهاي دات نت بايد نوشته شود يا HTML

hamid64_rs
جمعه 08 آبان 1388, 13:04 عصر
دو خط آخر که که مقدار display را برابر block قرار میده در event همون دکمه ی "ذخیره" (در شکل شما) و خطوط اول "تگهای div" باید در فایل html قرار بگیرند .درمورد اون کامپیوننتهایی که روی باکس قرار میگیرند هم مقدار z-index اونها رو (در style) برابر -1 قرار بده .اینطوری میرن زیر باکس .

khorsandreza
جمعه 08 آبان 1388, 16:09 عصر
دو خط آخر که که مقدار display را برابر block قرار میده در event همون دکمه ی "ذخیره" (در شکل شما) و خطوط اول "تگهای div" باید در فایل html قرار بگیرند .درمورد اون کامپیوننتهایی که روی باکس قرار میگیرند هم مقدار z-index اونها رو (در style) برابر -1 قرار بده .اینطوری میرن زیر باکس .
سلام
منظورتان از فايل html همان tag است و يا موضوع ديگري
شمننا تمام موارد ذکر شده رعايت شد ولي بازهم ليست باکس رو قرار ميگيره

hamid64_rs
شنبه 09 آبان 1388, 02:13 صبح
همونطور که توی عکس میبینی توی مثال من این اتفاق نمیفته .فقط مطمئن شو style های white_content و black_overlay رو دقیقا همونطوری که توی پست قبلی گذاشتم توهم استفاده کن و چیزیش رو تغییر نده .بهرحال فایلهای سورس مثالی رو که عکسشو گذاشتم برات لینک کردم .

SAMARE
شنبه 09 آبان 1388, 10:21 صبح
سلام
می تونی کدت رو داخل یه Try قرار بدی. اگه دستورات با موفیقت اجرا بشن پیغام مورد نظرت نشون داده بشه و اگر به مشکلی بر یخوره پیغام قسمت catch اجرا بشه.


try
{
//کدهای مورد نظرت رو اینجا بنویس
.
.
.
.
.
lblResult.Text = "اطلاعات با موفقیت ثبت شد";

}
catch
{
lblResult.Text = "کاربر گرامی عملیات با شکست مواجه شد . لطفاً مجدداً تلاش نمایید ";
}

من میخوام پیغام در یک پنجره جداگانه نمایش داده بشه نه در یک لیبل!

کسی نظر دیگه ای نداره؟؟؟

khorsandreza
شنبه 09 آبان 1388, 10:52 صبح
همونطور که توی عکس میبینی توی مثال من این اتفاق نمیفته .فقط مطمئن شو style های white_content و black_overlay رو دقیقا همونطوری که توی پست قبلی گذاشتم توهم استفاده کن و چیزیش رو تغییر نده .بهرحال فایلهای سورس مثالی رو که عکسشو گذاشتم برات لینک کردم .

سلام :
جالبه سورس خود شما بعد از کامپايل روي فرم نشان ميده
و باز هم دقيقا رعايت ميکنم روي فرم قرار ميگيره
تذکر :فرمهاي من ايجکسي ميباشد

khorsandreza
شنبه 09 آبان 1388, 12:06 عصر
سلام:
دوستان عزير حرفه کار لطفا علت اين اتفاق را براي من و ديگر دوستان شرح دهند
مي خواهم بجاي باز کردن Popup در داخل فرم با استفاده از پنل و دايو پيعامي را نمايش دهم همه اصول درست است ولي چند ايتم (DropDownList &ListBox1) بالاي اين فرم قرار ميگيرند
تذکر: مقدار دهي z-index و موارد مشابه رعايت شده
:متعجب::عصبانی++: