PDA

View Full Version : سوال: فرم های کوچک در وب



RoostaYeBekr
چهارشنبه 01 آبان 1387, 11:31 صبح
سلام
برای اینکه سوالم رو بگم ، یک مثال می زنم :
فرض کنید در یک سیستم انتخاب واحد اینترنتی ، یک صفحه ی ای داریم که در آن
یک لیبل هست ،
یک دکمه برای انتخاب استاد هست ،
یک دکمه برای انتخاب درس هست ،
که هر وقت روی مثلا دکمه ی انتخاب درس کلیک می کنیم ، یک فرم کوچک باز می شود که در آن نام تمام درس ها هست . حال در این فرم کوچک کاربر باید درسی را انتخاب کند. بعد از آنکه کاربر این درس را انتخاب کرد ، نام این درس انتخاب شده ، در لیبل صفحه ی اول نشان داده می شود.
:گیج:
حال سوال من این است که :
1- ما در ASP.NET تحت زبان C# ، چطور می توانیم ازاین فرم کوچک ها باز کنیم ؟
2 - آن مقداری که در فرم کوچک انتخاب کردیم ، چگونه به صفحه ی اول انتقال دهیم ؟

با تشکر

kezack
چهارشنبه 01 آبان 1387, 11:49 صبح
دوست خوب با javaScript میتونی یک فرم کوچک بسازی نمونشو توی همین سایت گذاشتم در ضمن با queryString میتونی اطلاعات را بین صفحات انتقال بدی

Mostafa_Sabeti
چهارشنبه 01 آبان 1387, 12:06 عصر
یک کاری که میتونی بکنی اینه:
یک جدول درست کن که تمام سطرهاش (tr) سمت سرور(runat="server")باشه. به هرکدام از سطرها هم یک نام با id بده
اونوقت مثلا توی سطر اول دکمه ها و لیبل را بگذار و توی سطر بعدی فرم خودت را درست کن. اونوقت با کلیک دکمه، visible سطر اول را false و visible سطر دوم را true کن.

RoostaYeBekr
چهارشنبه 01 آبان 1387, 12:32 عصر
سلام
:گریه:
kezack :


دوست خوب با javaScript میتونی یک فرم کوچک بسازی نمونشو توی همین سایت گذاشتم در ضمن با queryString میتونی اطلاعات را بین صفحات انتقال بدی

اگر می شه ، لینک آن را بگذارید ، چون بعضی وقت ها پیدا کردن یک مطلب در سایتی که کلی مطلب داره ، واقعا سخته:گیج:
تشکر

milade
چهارشنبه 01 آبان 1387, 14:28 عصر
ببین من هیچ کدوم از replay ها رو نخوندم اما فکر می کنم می خوای مثل یاهو کنی که یه صفحه باز می کنه ادرس ها رو انتخاب می کنی و به to اضافه می کنی
اگه اره:
مقدار اون مقدار درس رو بریز توی سشن یا کش یا هر چی بعد توی صفحه 2 اون سشن رو بخون!!!

موفق باشی

kezack
چهارشنبه 01 آبان 1387, 16:39 عصر
من منظورم از فرم یک صفحه ای بود که در واقع اندازش کوچیک باشه و اندازشم بشه تغییر داد که با javaScrip میشه این کارو کرد
و دوستمون میتونه فرضا یک گرید توی این صفحه بزاره و اطلاعات درس ها را توش نشون بده که با کلیک بروی دکمه این فرم نمایش داده بشه و گرید رو هم توری بزاره که با کلیک روی نام درس id اون درس رو بفرسته به صفحه مربوط(اول)و در واقع توی pageLoad یک شرطی بزاره که اگر یک queryString داشت مقدار label را برابر اون Id یا نام درس قرار بده
فقط یک مشکلی که داره اینه که این صفحه اول فکر کنم refresh بشه بعد از انتخاب نام درس:متفکر:
اینم لینک فرم کوچک البته اگه منظورتون همین باشه!!!
http://barnamenevis.org/forum/showthread.php?t=125274

Behrouz_Rad
چهارشنبه 01 آبان 1387, 17:04 عصر
1- ما در ASP.NET تحت زبان C# ، چطور می توانیم ازاین فرم کوچک ها باز کنیم ؟

با window.open


2 - آن مقداری که در فرم کوچک انتخاب کردیم ، چگونه به صفحه ی اول انتقال دهیم ؟

بستگی به تکنیک و ابزارهایی داره که استفاده می کنی.
یکی از روش ها، استفاده از JS و window.opener هست. window.opener ارجاعی به پنجره ی باز شده توسط پنجره ی جاری است که بدین طریق میشه بینشون تعامل برقرار کرد.

پ.ن: استفاده از دو ID برای فعالیت بر خلاف قوانین سایت هست. لطفاً با یک ID فعالیت کنید و از بحث های حاشیه ای بپرهیزید.

RoostaYeBekr
چهارشنبه 01 آبان 1387, 21:46 عصر
با سلام
اولا ممنون . لینکی که معرفی کردید ، مفید بود.
البته همون مشکلی که خودتون گفتید ( که بعد از یک PostBack ، صفحه ای اصلی مقدار را می گیرد ، ) همچنان برای من سوال هست.
یعنی مشکلی که من الان دارم این است که اگر تکه کد زیر را در فرم کوچک در نظر بگیریم ،


public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
Session["theValue"] = "zahra";

}
}


و در فرم اصلی هم داشته باشیم :


protected void Page_Load(object sender, EventArgs e)
{
if (!(Session["theValue"] == null))
Label1.Text = ((string )Session["theValue"]);

}

فرم اصلی برای اینکه مقدار نشان داده شده در فرم کوچک را نشان دهد ، حتما نیاز به PostBack دارد . در حالیکه اینطور نباید باشد.
مثلا در همین سایت ، زمانی که می خواهیم فایلی را ضمیمه کنیم ، زمانیکه در فرم کوچک ، فایل ما آپلود می شود ، حتی قبل از اینکه فرم کوچک را ببندیم ، می بینیم که نام فایلمان را در فرم اصلی نشان می دهد.
راستی توی این قضیه من یک سوال دیگر هم داشتم و آن اینکه بعد از اینکه مثلا Button1 را در فرم کوچک کلیک کردیم ، چه کار کنیم که بعد از مقدار دادن به سشن ، فرم را هم ببندد؟
دوستانی که پیشنهاد QueryString را داده اند :
خوب معمولا زمانی از QueryString استفاده می شود که قبلا یک ResponseRedirect ی باشد . حال من آمدم و در فرم کوچک از ResponseRedirect استفاده کردم . ولی باعث شد که روی همان فرم کوچک ، یک صفحه ی دیگری از فرم اصلی بسازد ( یعنی تا اینجا دو تا صفحه از فرم اصلی روی صفحه ی دسکتاپ می بینم ) . راستش من این را نمی خواستم . می خواستم اینطور باشد که بعد از نمایش فرم کوچک و کلیک روی باتم ( مقدار دادن ) ، فرم کوچک بسته شده و همان لحظه بدون PostBack ، آن مقدار در فرم اصلی نشان داده شود. البته شاید به آن شکلی که مد نظر شماست ، پیاده سازی نکردم و منظورتان چیز دیگری بوده که من نفهمیدم.

در هر صورت من همان لینکی که معرفی کردید ، برنامه اش را گرفتم و برای کسانی که می خواهند ، پاسخ این سوال را بدهند ، کمی کوچکش کردم ، با تغییرات جزئی. تا بهتر منظور من را متوجه شوند.

تشکر.

vb_bmw
پنج شنبه 02 آبان 1387, 00:20 صبح
به قول این آقای اسکات گو یه برنامه نویس وب باید حداقل 50% VBscript رو بلد باشه!!!

اینم چاره درد همتون!فقط زمان ندارم برای FF هم درستش کنم ، یکی از اساتید زحمتش رو بکشه!

اگه اینم خوشتون نیومد برید به قسمت ارسال پاسخ اونجا یه Attachment که اضافه می کنید همین جوری میشه!

موفق باشید!:چشمک:

sasan123
پنج شنبه 02 آبان 1387, 09:50 صبح
دوستام من نیز مشکل دارم من می خواهم یک دکمه بگذارم که با کلیک رویش یک صفحه باشد که در ان صفحه یک gridview که با کلیک بر روی ام نام مورد نظر انتخاب شود و در صفحه ی اول نشان داده شود می شه مسئله را بیشتر توضیح بدهین ممنون دوستان

kezack
پنج شنبه 02 آبان 1387, 10:11 صبح
با سلام
اولا ممنون . لینکی که معرفی کردید ، مفید بود.
البته همون مشکلی که خودتون گفتید ( که بعد از یک PostBack ، صفحه ای اصلی مقدار را می گیرد ، ) همچنان برای من سوال هست.
فرم اصلی برای اینکه مقدار نشان داده شده در فرم کوچک را نشان دهد ، حتما نیاز به PostBack دارد . در حالیکه اینطور نباید باشد.
مثلا در همین سایت ، زمانی که می خواهیم فایلی را ضمیمه کنیم ، زمانیکه در فرم کوچک ، فایل ما آپلود می شود ، حتی قبل از اینکه فرم کوچک را ببندیم ، می بینیم که نام فایلمان را در فرم اصلی نشان می دهد.

در واقع من هم گفتم نیاز به یک postBack داره ولی یک فکری به نظرم اومد نمی دونم درست هست یا نه لطفا دوستان نظر بدن
اینکه فرضا از یک فرم یا صفحه ای به نام A به صفحه ای به نام B رفتیم حالا آیا میشه از طریق دستور FindContorl بیام کنترل های موجود در صفحه A رو پیدا کنیم و بعد بهش از فرم B مقدار بدیم؟ که بدون PostBack شدن صفحه A مقدار اون کنترل تغییر کنه و در صفحه A نشون داده بشه؟

RoostaYeBekr
پنج شنبه 02 آبان 1387, 11:35 صبح
سلام
راستش من خودم برای رفع این مشکل PostBack ، یک فکری دارم که نمی دانم چطور پیاده سازی اش کنم:
به نظر من آن لحظه ای که فرم اصلی ، فرم کوچک را فراخوانی می کند ، باید طوری فراخوانی کند که انگار نتیجه ی این فراخوانی ، یک مقدار بر می گرداند. حالا شاید کد زیر کلا از نظر مفهومی مشکل داشته باشد ، ولی برای اینکه منظورم را بگویم ، از آن استفاده می کنم. مثلا آن قسمتی که نوشته بودید:


eval(cad)

اگر فرض کنیم که این کد یک مقدار String بر می گرداند ، می توان نوشت :


thestring = eval(cad)
alert(thestring);

که thestring همان مقدار گرفته شده از فرم کوچک است.

البته من کاری که در بالا گفتم ، خودم انجام دادم ، ولی ظاهرا مشکل Syntax دارد . احتمالا هم به خاطر این است که eval ، یا اصلا مقداری برنمی گرداند و یا مقداری که برمی گرداند ، باید cast شود. حالا اگر کسی بلد است این eval را به مقدار string تبدیل کند ، لطفا بگوید.

البته اگر از هر روش دیگری برای رفع این مشکل هم استفاده می کند ، اگر بگوید ، ممنون می شوم.

mostafa_sgh
پنج شنبه 02 آبان 1387, 12:08 عصر
سلام به همه دوستان گرامی

همانطور که آقای راد فرمودن ، مشکلتون با window.opener حل میشه و نیازی نیست که راه های سخت رو انتخاب کنید ، هر چند شاید نتونید به نتیجه دلخواهتون برسید .

یه مثال طبق تابیک اولتون براتون آماده کردم ، امیدوارم مفید باشه ...

RoostaYeBekr
پنج شنبه 02 آبان 1387, 13:16 عصر
با سلام

دوستان عزیز ، بالاخره با کمک شما مشکل حل شد.
من یک فایل فرستادم به سایت . توی این فایل این قضیه
یک بار با vbscript حل شده که این دقیقا کدی که vb_bmw فرستاد . واقعا دستش درد نکنه . یک بار هم با javascript حل شده . من وقتی پروژه ی vb_bmw را دیدم ، حدس زدم که آن متدی که در vbscript به کار رفته ، در javascript هم می توان از آن استفاده کرد که خدا را شکر همین طور بود. پس در اینجا یک سری متد اضافه کردم.
البته mostaf_sgh هم یک برنامه ی کاملی فرستادند. از روی پروژه ی mostaf_sgh هم ، دو صفحه به فایلی که به سایت فرستادم ، هست.که این سومی هم با javascript ، ولی با کمی تفاوت از آن قبلی که گفتم ، حل شده.

برای اینکه با javascript پروژه اجرا شود ، روی Default.aspx ، کلیک راست و Start as page را بزنیدو برای اینکه با vbscript پروژه اجرا شود ، روی Default3.aspx ، کلیک راست و Start as page را بزنید. برای اینکه یک حالت دیگر از javascript را ببینید ، بر روی Default5.aspx، کلیک راست و Start as page را بزنید.
به هر حال دست همتون درد نکنه.:تشویق:

sasan123
پنج شنبه 02 آبان 1387, 19:04 عصر
دوستان من با کمک کد
kezack http://barnamenevis.org/forum/showthread.php?t=125274 (http://barnamenevis.org/forum/showthread.php?t=125274)مشکلم را حل کردم و اینکه در صفحه ی جدید باز شود ولی الان مشکلی که دارم اینکه نمی تونم از grid که در صفحهی باز شده وجود دارد مقادیر را به صفحه ی اول انتقال دهم و بر اساس query string و صفحه ی باز شده بسته شود مرا راهنمایی کنید

kezack
پنج شنبه 02 آبان 1387, 19:40 عصر
فکر کنم مثالی که دوستان بالا گذاشتن این مشکل رو حل کرده
برای دادن queryString خوب وقتی که فرضا روی Id در گرید کلیک کردی اینجوری بنویس
فرضا در گرید از تگ زیر برای نشان دادن id استفاده کن


<a class="Comment" style="color:#000000;text-decoration: none; font-weight: normal;" onmouseout="this.style.textDecorationUnderline=false;this.styl e.color='#000000'" onmouseover="this.style.textDecorationUnderline=true; this.style.color='blue';" href=address Safhiye ke bayad QueriString ro enteghal bedi=<%# DataBinder.Eval(Container.DataItem, "ID") %>'>
<%# DataBinder.Eval(Container.DataItem, "ID") %></a>

البته بازم میگم اگه از کاری که دوستان در بالا استفاده کردن انجام بدی بهتره

vb_bmw
پنج شنبه 02 آبان 1387, 19:50 عصر
یه مشکل اساسی هست اونم اینه که استفاده از این کد تا جایی که یادمه ایراد داره!


window.returnValue = 'hello';

دلیلش هم نمی دونم چرا فقط توی یکی از ویلاگ های ASP.Net دیدم!البته کار میکنه ولی امکان کار نکردن هم وجود داره!

خوش حالم که کارتون راه افتاد!

vb_bmw
پنج شنبه 02 آبان 1387, 19:53 عصر
طبق سفارش آقای راد از این کد استفاده نکنید:

<%# DataBinder.Eval(Container.DataItem, "ID") %>

کد درست برای این کار این قطعه کد هست:


<%#CType(Container.DataItem, System.Data.DataRowView)("ID")%>

موفق باشید!

sasan123
جمعه 03 آبان 1387, 07:58 صبح
دوست من من از کد دوستان دیگر نتونستم استفاده کنم اخه اون ها button استفاده کرده بودند دوست من من نتونستم بازم ازgrid و query استفاده کنم می شه بیشتر توضیح دهید

RoostaYeBekr
جمعه 03 آبان 1387, 17:03 عصر
با سلام
:لبخندساده:
در جواب آقای sasan123 (http://barnamenevis.org/forum/member.php?u=73595):
من یک راه حلی برای مشکل شما دارم و آن استفاده از DataList به جای GridView است. DataList را می توان به لحاظ ظاهری شبیه به GridView هم درآورد. من این کار را کردم و فایلش را برایتان به سایت فرستادم. طرز کارش هم به اینصورت است که ابتدا بر روی Default7.aspx کلیک راست کرده و سپس Set as Startpage را بزنید. بعد که برنامه را اجرا کردید ، روی دکمه کلیک کنید . در صفحه ی باز شده ، کنار آن گزینه ای که می خواهید ، تیک بزنید ، بلافاصله بعد از اولین تیک ، فرم دوم بسته شده و مقدار انتخاب شده در آن به صفحه ی اول ، داده می شود. ضمنا دیتابیس را هم از پوشه ی APP_Data بردارید.
:ناراحت:
راستش من چند ساعت تمام است که دارم تلاش می کنم این قضیه را با GridView حل کنم . ولی متاسفانه نتوانستم. از دوستان اگر کسی می تواند این مشکل را با GridView حل کند ، لطفا راه حلش را بگوید ( البته اگر ممکن است با ذکر جزئیات . چون اولش آدم فکر می کنه ساده است . ولی موقع پیاده سازی ، مشکلاتش را می بیند ).

RoostaYeBekr
جمعه 03 آبان 1387, 20:03 عصر
با سلام
من سر قضیه ی پیاده سازی فرم کوچک با GridView ، کد دوستان را با هم ترکیب کردم . فقط سر یک قضیه گیر کردم که نمی دانم چه کارش کنم و آن کد زیر در صفحه ی Default10.aspx است:


function check() {
var desFi = window.opener.document.getElementById('<%= Request.QueryString["fid"] %>');
var drpFi = document.getElementById('<%= GridView1.ClientID %>');
if (!(drpFi.selectedIndex == ''))
{
desFi.innerText = drpFi.options[drpFi.selectedIndex].value;
window.close();
}

مشکل دقیقا جائی است که من نمی توانم مقدار انتخاب شده در GridView را در فانکشن بالا در متغیر desFi.innerText بریزم .

ضمنا دیتابیس در پوشه ی APP_Data است.

برای اجرا روی صفحه ی Default9.aspx کلیک راست و Set As Start page را بزنید.

خواهشا اگر کسی حوصله ی این سوال را ندارد ، فقط این را بگوید چطور می توان مقدار انتخاب شده در GridView را گرفت . باور کنید سر این قضیه دهانمان صاف شد. در حالیکه GridView دارای تعریف زیر است:


<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSource1" >
<FooterStyle BackColor="White" ForeColor="#000066" />
<Columns>
<asp:BoundField DataField="_Continent" HeaderText="_Continent" SortExpression="_Continent" />
<asp:BoundField DataField="_Country" HeaderText="_Country" SortExpression="_Country" />
<asp:BoundField DataField="_City" HeaderText="_City" SortExpression="_City" />
<asp:CommandField ShowSelectButton="True" />

</Columns>

<RowStyle ForeColor="#000066" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ContinentConnectionString %>"
SelectCommand="SELECT * FROM [Table1]"></asp:SqlDataSource>

اگر کسی می داند که چطور می توان این قضیه را چه در سمت کلاینت و چه در سمت سرور حل کرد ، لطفا بگوید . چون هر کدام از اینها را بلد باشید ، قضیه حل شده.

ممنون.

RoostaYeBekr
جمعه 03 آبان 1387, 22:43 عصر
با سلام
:لبخند:
بالاخره با GridView هم درست شد که فایلش را به سایت فرستادم . دیتابیس در پوشه ی APP_Data است. ( دیتابیس هم تغییر پیدا کرد).
:خجالت:
برای اجرا روی Default9.aspx کلیک راست و سپس گزینه ی Set As Start Page را کلیک کنید.
:قهقهه:
فقط راجع به قضیه ی فارسی و انگلیسی ، یک مسئله ی کوچک مانده که فردا بهتون می گم و الان نمی توانم چون راستش الان گردنم خشک شده.

RoostaYeBekr
شنبه 04 آبان 1387, 15:34 عصر
با سلام
حالا که خدا را شکر ، با کمک دوستان ، این قضیه ی فرم های کوچک با GridView حل شد ، یک قضیه ی کوچک در رابطه با این مسئله مانده که خواستم در جریان باشید:

من اولیت باری که سایت طراحی کردم و دادم که آن را برایم روی Server بگذارند ، تقریبا هیچ چیز توی سایتم کار نمی کرد. علتش هم این بود که تمام مقادیری که من با QueryString پاس می کردم ، فارسی بود. ضمنا وقتی یک مقدار انگلیسی در URL ام می گذاشتم ، کار می کرد و این در حالی است که همین برنامه ام ، روی یک کامپیوتر معمولی ( منظورم اینکه Server نبود ) ، قشنگ اجرا می شد و مشکلی نداشت.

با توجه به اینکه در همین قضیه ی فرم های کوچک با GridView هم ، ما خیلی وقت ها باید مقادیر فارسی پاس کنیم ، حتما توجه داشته باشید که :

برای انتقال مقادیر فارسی بین صفحات حتما از Session استفاده کنید . ( این جمله توسط دوستان دیگر مورد انتقاد قرار گرفته و جلوتر تصحیح شده)

البته ممکن است کسی بگوید که انتقال مقادیر فارسی بوسیله ی QueryString ، نشدنی نیست و احتیاج به تنظیمات بر روی Server دارد. اگر کسی چنین اعتقادی دارد ، لطفا اعلام کند و اگر ممکن است راه حلش را هم بگوید.

موفق باشید.

mostafa_sgh
شنبه 04 آبان 1387, 17:02 عصر
برای انتقال مقادیر فارسی بین صفحات حتما از Session استفاده کنید .

این حرف اصلاً منطقی نیست ....!

شما برای انتقال مقادیر فارسی در Query String می تونید ، رشته رو ابتدا Encode کرده و بعد ارسال کنید .

حالا با این همه راه حل، این چه پارامتر فارسی هستش که حتماً باید به عنوان QueryString ارسال بشه ؟

RoostaYeBekr
شنبه 04 آبان 1387, 18:28 عصر
از ایرادی که از حرفم گرفتید ، ممنونم .
از فتوای اشتباهی که دادم ، معذرت می خواهم.

آقای mostafa_sgh ممکن است در رابطه با راه حلتان که در زیر گفتید ، بیشتر توضیح دهید: ( اگر ممکن است یک مثال کوچک بزنید)


شما برای انتقال مقادیر فارسی در Query String می تونید ، رشته رو ابتدا Encode کرده و بعد ارسال کنید .

mostafa_sgh
شنبه 04 آبان 1387, 18:38 عصر
شما برای ارسال مقادیر فارسی میتونید از تابع Server.UrlEncode , Server.UrlDecode استفاده کنید .


Response.Redirect("~/default.aspx?pn="+ Server.UrlEncode("فارسی"))


string pName = Request.QueryString["pn"];

if(!string.IsNullOrEmpty(pName))
{
pName = Server.UrlDecode(pName);
}
فقط باید تکلیف را مشخص کنید !

هر کاری منطق خاص خودشو داره ....

این ارسال توسط javascript میخواد انجام بشه و یا سمت Server توسط Response.Redirect ؟

sasan123
شنبه 04 آبان 1387, 19:04 عصر
دوست من من هنوز مشکل فر مهای کوچکم حل نشده به من نیز کمک کنید من می خواهم که در صفحه ی اولم یکhyperlink باشدو در صفحه ی دوم یا همان صفحه ی کوچک فقط یک grid view دارم که می خواه با کلیک بر روی ان وارد صفحه ی اول شده و اطلاعاتی که در grid صفحه اول می باشدو id ان بر اساس صفحه کوچک کرفته شده اطلاعات را نشان دهد من هنوز نتونستم از کدهای شما استفاده نم اصلا هم نمی فهمم که کدها چیکار می کنند من نمی خواهم از buttom استفاده کنم معذرت می خوام که سوالم را دوباره مطرح کنید لطفا دوستان کمک کنید

mostafa_sgh
شنبه 04 آبان 1387, 19:08 عصر
سلام رفیق

شما یه زحمتی بکشید و 2 تا عکس از صفحه اول و دوم بزارید اینجا ( ترجیحاً 3x4 :لبخند::چشمک: )
اینم برا این میگم که هر کس از حرف هاتون یه برداشتی میکنه ....

اینطوری خیال همه راحت میشه و راحت تر میتونن کمکتون کنن ...

sasan123
شنبه 04 آبان 1387, 19:12 عصر
عکسی ندارم ولی فکر کنم واضح کجاش نامفهوم

RoostaYeBekr
شنبه 04 آبان 1387, 19:21 عصر
با سلام:
آقای mostafa_sgh (http://barnamenevis.org/forum/member.php?u=67326) ، ممنون . توی اون قضیه ای که قصه اش رو گفتم ، کدهایی که فرستادید ، کمکمان کرد.:تشویق:
:ناراحت:
ولی راستش ، کدی که فرستادید ، مشکل موضوع مطرح شده در این تاپیک را حل نمی کند ، به دلیل اینکه شما این قضیه را در سمت Server حل کرده اید . در حالیکه ما میخواهیم که رشته هایمان در سمت Client ، به شکل Encode درآیند.

در هر حال اگر باز هم راهنمایی کنید ، ممنون می شوم.

mostafa_sgh
شنبه 04 آبان 1387, 19:31 عصر
میدونید مشکل کجاست ؟

.................................................. .................................................. .................................................. .................................................. .

این هم مشکل Javascript !!!!



function urlEncode(uniText){
var text = '';

var normal = new
Array("ا","آ","ب","پ","ت","ث","ج","چ","ح","خ","د","ز","ر","ز","ژ","س","ش","­ص","ض","ط","ظ","ع","غ","ف","ق","ک","گ","ن","م","ل","و","ه","ي","ی"," ","ة");
var encode = new Array("%d8%a7","%d8%a2","%d8%a8","%d9%be","%d8%aa","%d8%ab","%d8%ac","%da%86","%d8%ad","%d8%ae","%d8%af","%d8%b0","%d8%b1","%d8%b2","%da%98","%d8%b3","%d8%b4","%d8%b5","%d8%b6","%d8%b7","%d8%b8","%d8%b9","%d8%ba","%d9%81","%d9%82","%da%a9","%da%af","%d9%84","%d9%85","%d9%86","%d9%87","%d9%88","%db%8c","%d9%8a","+","%d8%a9");

for(var i = 0;i <= uniText.length ; i++ ){
var str = uniText.substring(i,i+1);
for(var j= 0; j <= normal.length;j++){
if(normal[j] == str)
text += encode[j];
}
}

return text;
}

RoostaYeBekr
یک شنبه 05 آبان 1387, 00:28 صبح
با سلام
:لبخندساده:
خدمت دوستان . عرض شود این فایلی که فرستادم ، اختصاصا برای شخصی است که در این تاپیک اصرار دارد که این موضوع با HyperLink حل شود و اینکه در فرم کوچک به هیچ عنوان Button ی نباشد .
:خجالت:
گرچه دیگران هم می توانند این فایل را دانلود کنند ، چون بالاخره راه حلش را کمی تغییر دادم . ولی من پیشنهاد می کنم که از فایلهایی که در دو پست قبلی فرستادم ( به خصوص پست آخر ) استفاده کنید.

RoostaYeBekr
یک شنبه 05 آبان 1387, 22:58 عصر
با سلام
من به یک شکل دیگر این قضیه ی فرم های کوچک را حل کردم که فایلش را به سایت فرستادم. فکر کنم این یکی بهتر شد و شاید دیگر همون شد که می خواستیم:
:لبخند:
صفحه ی اول:
دارای :
1 – یک Label
2- یک تگ a (لینک)
3- یک DropDownList
صفحه ی دوم:
دارای :
1 – GridView
طرز کار :
ابتدا در صفحه ی اول ، یک مقداری را از DropDownList انتخاب می کنیم و سپس لینک a را می فشاریم. بعد از فشردن لینک a ، مقدار انتخاب شده در DropDownList ، به صفحه ی دوم ( یا همان فرم کوچک پاس داده می شود ) .
بعد در فرم کوچک روی یکی از گزینه های GridView کلیک می کنیم . بالافاصله بعد از کلیک ، فرم کوچک بسته شده و مقدار انتخاب شده در GridView ، به Label صفحه ی اول ریخته می شود.
دیتابیس را از پوشه ی App_Data بردارید.