PDA

View Full Version : سوال: قرار دادن tooltip و دوبار کلیک در گرید ویو



hamide_kh
پنج شنبه 06 اسفند 1388, 11:01 صبح
سلام خدمت دوستان عزیز
من در برنامه ام یک گرید ویو دارم که فیلدهای جدولم را در اون نمایش میدم،حالا من 2 تا مشکل دارم
1-می خوام وقتی کاربر روی هر سطر 2بار کلیک کرد یکی از فیلدها که مثلا عنوان هست به listbox اضافه بشه؟

2-چطور می تونم برای هر سطر یک tooltip داشته باشم(البته متن tooltip نیز باید از دیتا بیس خونده بشه)

تشکر

hamide_kh
پنج شنبه 06 اسفند 1388, 18:08 عصر
سلام دوستان اگه ممكنه راهنماييم كنيد چون سرچ كردم اما به نتيجه اي نرسيدم?

hajizahiry
شنبه 08 اسفند 1388, 11:27 صبح
دوست عزیز برای انجام این کد لازم است که برنامه نویسی جاوا را به خوبی کار کرده باشید.
1- در RowDataBound گرید خط زیر را اضافه کن تا بتوانی تابع جاوایی در دوبل کلیکم کردن تعریف کنی
protected void Gd_Modiran_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//======onMouseOver , onMouseOut=================
e.Row.Attributes["ondblclick"] =
"javascript:addTolist('" + ((Label)e.Row.FindControl("lbl_title")).Text + "');";
}
}
که lbl_title عنوانی است که می خواهی اضافه کنی
2- در تابع addTolist باید عنوان را بگیری و به لیست اضافه کنی
این هم دستور اضافه کردن به یک لیست در جاوا :
var oOption = document.createElement("OPTION");
window.document.getElementById("cmb_jobDegree").add(oOption);
oOption.text="";
oOption.value="";

hamide_kh
شنبه 08 اسفند 1388, 12:13 عصر
سلام و ممنون از پاسخ کامل تون
کد را امتحان می کنم اگه مشکلی بود باز مزاحم میشم

hajizahiry
شنبه 08 اسفند 1388, 14:52 عصر
البته دوست عزیز اگر می خواهی عنوان را به لیست اضافه کنی باید علاوه بر نام عنوان ، کد آن را هم بفرستی که تغییرات به صورت زیر می باشد
//======onMouseOver , onMouseOut=================
e.Row.Attributes["ondblclick"] =
"javascript:addTolist('" + ((Label)e.Row.FindControl("lbl_title")).Text + "' , '"+((Label)e.Row.FindControl("lbl_pktitle")).Text + "+"');";
}

hamide_kh
شنبه 08 اسفند 1388, 21:53 عصر
با سلامی دوباره
آقا معذرت میخوام من جاوا اسکریپت کار نکردم
و برای استفاده از کدهایی که شما گذاشتید به مشکل خوردم؟
ببینید فرض کنید من در صفحه ام یک Listbox و گرید ویو دارم که در گرید ویو که به دیتا بیس وصله یک دیتا فیلد به نام Onvan هست حالا می خوام وقتی روی هر سطر از گرید ویو 2 بار کلیک کرد محتوای اون فیلد Onvan بره و به لیست اضافه بشه؟
حالا مشکلی که در استفاده از کدهای شما دارم
1-
که lbl_title عنوانی است که می خواهی اضافه کنی

اینجا را متوجه نمیشم
2-
این هم دستور اضافه کردن به یک لیست در جاوا :
var oOption = document.createElement("OPTION");
window.document.getElementById("cmb_jobDegree").ad d(oOption);
oOption.text="";
oOption.value="";

اینجا را اگه میشه بهم کامل بگید چه کنم؟



البته دوست عزیز اگر می خواهی عنوان را به لیست اضافه کنی باید علاوه بر نام عنوان ، کد
آن را هم بفرستی که تغییرات به صورت زیر می باشد

البته همانطور که گفتم نمی خوام عنوان گرید ویو را به ListBox اضافه کنم بلکه می خوام در هر سطری که کاربر کلید کرد فیلد Onvan (البته به عنوان مثال)در list بشینه

ببخشید زیاد حرف زدم،اگخ براتون امکان داره برام اینکار را انجام دهید؟

البته جسارتا اگه می تونید یکم سرعتر کمکم کنید چون کمی عجله دارم

h.alizadeh
دوشنبه 10 اسفند 1388, 23:34 عصر
یه نگاه اینجا بنداز:
http://www.codeproject.com/KB/webforms/DoubleClickGridviewRow.aspx


برای قرار دادن tooltipهم گرید ویو روببر به حالت تمپلیت و اونوقت برای اون قسمتی که میخوای tooltipبزاری مثلا اینجوری بنویس:
ToolTip ='<%# Bind("shDate") %>'

shDate:اسم فیلد موردنظر

hamide_kh
پنج شنبه 13 اسفند 1388, 12:38 عصر
سلام
با تشکر از شما مشکل دوبار کلیک با اون لینک بالایی حل شد
اما منظور شما از این کد را نفهمیدم میشه یکم بیشتر توضیح بدید

ToolTip='<%# Bind("shDate") %>'

h.alizadeh
پنج شنبه 13 اسفند 1388, 15:34 عصر
گریدویو رو به حالت templatefieldببریعنی روی گریدویو کلیک کن بزن edit columnsبعد برو روی هر کدوم از ستون هات و گزینه ی convert this field into a templatefield بعد که همه فیلدها رو بردی به این حالت در قسمت کدنویسی یعنی source . برو قسمت
<ItemTemplate> اونجا بعد برو روی مثلا یکی از کنترلهات مثلاً


<asp:Label ID="lblShDate" runat="server" Font-Size="Smaller"
ForeColor="#990000" Text='<%# Bind("shDate") %>' ToolTip ='<%# Bind("shDate") %>'></asp:Label>



<%# Bind("shDate") %>
باعث میشه که مقدار فیلد shDateاز بانکتون خونده بشه و در Tooltipنمایش داده شه.

این دستور باعث میشه وقتی ماوس روی این لیبل رفت یعنی اون سلول رفت Tooltipشما ظاهر بشه اگه میخوای روی کل سطرت بیاد برای هرکدوم از کنترلهای سطرموردنظرتون Tooltipرو اضافه کن.


موفق باشید.