PDA

View Full Version : تبدیل مقدار label به int



dr_csharp
پنج شنبه 27 دی 1386, 10:34 صبح
سلام دوستان
من با جاوا اسکریپت درون lblID یه عدد میریزم ..بعد تو رویداد کلیک یکی از button هام برای ارسال این ID به بانک نیاز دارم تبدیلش کنم ولی خطا میده !؟



int.parse(lblID.Text.Trim());


نمیدونم مشکل چیه .. ظاهرا اصلا نمیتونه convert کنه !؟

raravaice
پنج شنبه 27 دی 1386, 11:19 صبح
سلام
احتمالا عدد داخل Label شما بین یه Span یا DIV یا Font قرار گرفتهه که Convert نمیشه تو کد HTML ساخته شده توسط Browser یه نگاهی بنداز علتش رو میفهمی.

dr_csharp
پنج شنبه 27 دی 1386, 12:41 عصر
احتمالا عدد داخل Label شما بین یه Span یا DIV یا Font قرار گرفتهه که Convert نمیشه تو کد HTML ساخته شده توسط Browser یه نگاهی بنداز علتش رو میفهمی.

اول با جاوااسکریپت تو lblID یه مقدار عددی میریزم :


document.getElementById("lblID").innerText="2";


اون مقدار عددی تو lblID نمایش داده میشه ولی وقتی view source میکنم lblID اینجوریه !؟ :


<span id="lblID" style="color:Red;">&nbsp;</span>


ظاهرا وقتی با جاوا اسکریپت این مقدار به lblID پاس میشه اتفاق دیگه ای می افته !؟ من تست کردم ، اگه بجای label از TextBox استفاده کنم مشکلی وجود نداره ..
در هر حال سوالی که واسم مطرحه اینه که پس این عدد 2 که به lblID پاس میشه و من تو صفحم میبینمش و وقتی view source میزنم نیست پس کجاس ؟؟:متفکر:

raravaice
پنج شنبه 27 دی 1386, 13:08 عصر
سلام
علت اینه که جاوا اسکریپت داره تو حالت RunTime این کارو انجام میده شما اون Space رو از توی Label بردار و یا به جای Label .net از یه DIV HTML که RunAtServer شده استفاده کن.

dr_csharp
سه شنبه 02 بهمن 1386, 16:06 عصر
سلام
علت اینه که جاوا اسکریپت داره تو حالت RunTime این کارو انجام میده شما اون Space رو از توی Label بردار و یا به جای Label .net از یه DIV HTML که RunAtServer شده استفاده کن.
اینکار رو انجام میدم نمیشه !! ببینید من اگه بجای این div یک TextBox بگذارم ok هست ولی اگه همین Div رو که میگین ایجاد کنم و مقادیر رو درون اون بریزم اگه page source بگیرم درون اون چیزی نیست !!
خوب طبیعتا الان که میخوام innerText این div رو بخونم با error مواجه میشم !

raravaice
سه شنبه 02 بهمن 1386, 16:21 عصر
سلام
کاملا حق با شماست منم حواسم نبود علت اینه که DIV یا SPAN جزء مواردی نیستند که اطلاعات اونا برای سرور پست بشه.
یه راهکار اینه که :
شما وقتی داری مقدارتو با جاوا اسکریپت به DIV میدی همونجا همون مقدار رو به یه Hidden Text box هم بده و سمت سرور این مقدار رو بخون.

موفق باشی

dr_csharp
سه شنبه 02 بهمن 1386, 16:36 عصر
شما وقتی داری مقدارتو با جاوا اسکریپت به DIV میدی همونجا همون مقدار رو به یه Hidden Text box هم بده و سمت سرور این مقدار رو بخون.

سلام . متاسفانه ابتدا به ذهن خودم هم این راهکار رسید ولی دوست عزیز یه نکته ای که جالبه اینه که اگه TextBox رو lock کنیم ( Read only ) یا Visible=false در اینصورت هم با error مواجهیم !!! ظاهرا وقتی document.getElementbyID میکنیم javascript کنترل رو نمیبینه !

raravaice
سه شنبه 02 بهمن 1386, 16:46 عصر
نه

با این کار کن جواب داده :



<INPUT type="hidden" >


runat server کنش با جاوا اسکریپت مقادیرت رو بهش بده سمت سرور مقادیر رو بخون

dr_csharp
سه شنبه 02 بهمن 1386, 16:59 عصر
منظورتون اینجوریه ؟


<input type="hidden" id="txtID" runat="server"/>

raravaice
سه شنبه 02 بهمن 1386, 17:01 عصر
دقیقا.
مطمئنا میتونی ازش استفاده کنی.

dr_csharp
سه شنبه 02 بهمن 1386, 17:07 عصر
با تشکر از همه ی دوستان
یه جمع بندی میکنیم واسه آیندگان :
کافیه بصورت زیر عمل کنیم :

<input type="hidden" id="txtID" runat="server"/>
و برای مقدار دهی یا خواندن مقدار بصورت زیر عمل میکنیم :


txtID.Value