ورود

View Full Version : انتخاب در گرید ویو



shahram176
یک شنبه 17 فروردین 1393, 21:03 عصر
سلام
من از یک گردیدویو برای نمایش پیام های دریافتی استفاده میکنم و از یک فرم ویو برای نمایش متن نامه کدوم خاصیت گریدویو باعث میشه هر سطر از گریدویو را بتوان انتخاب کرد یعنی روی هر سطر که کلیک شد متن مرتبط با آن سطر در فرم ویو نمایش داده بشه؟

Mohammad_dn
یک شنبه 17 فروردین 1393, 21:33 عصر
AutoGenerateSelectButton

این خواصیتو فعال کن...

shahram176
یک شنبه 17 فروردین 1393, 21:42 عصر
AutoGenerateSelectButton

این خواصیتو فعال کن...
خودم این خاصیت را فعال کردم ولی یه لینک میذاره و مینویسه select من می خوام کل سطر خاصیت انتخاب داشته باشه

Mohammad_dn
یک شنبه 17 فروردین 1393, 21:58 عصر
یعنی چی کل سطر خواصیت انتخاب داشته باشه؟خوب وقتی روی Select کلیک کنی کل سطر انتخاب میشه دیگه:متفکر:

shahram176
یک شنبه 17 فروردین 1393, 22:23 عصر
مثل این سایت می خوامhttp://www.chadormalu.com/About/news_view.aspx

Mohammad_dn
یک شنبه 17 فروردین 1393, 22:34 عصر
کدوم سایت؟

shahram176
یک شنبه 17 فروردین 1393, 22:38 عصر
کدوم سایت؟
http://www.chadormalu.com/About/news_view.aspx

Mosa_Peo
یک شنبه 17 فروردین 1393, 23:05 عصر
دوست عزيز براي اين كار از دستورات Jquery استفاده مي شود كه مي توانيد آن را در گوگل جستجو كنيد
و يا از كامپوننتهاي مخصوص استفاده نماييد .

Mohammad_dn
یک شنبه 17 فروردین 1393, 23:18 عصر
آقا این پست بک داره...تو از css استفاده کن...و یوزر کنترول هم میتونه کمکت کنه

sajad_boj71
یک شنبه 17 فروردین 1393, 23:25 عصر
اگه میشه بفرماید چجوری میشه کاری کرد که ،
در گریدویو یک سطر رو انتخاب (select) کرد و بعد چند تا تکست باکس بزاریم وبه محض انتخاب سطر مورد نظر اطلاعات اون سطر در تکست باکس نمایش داده بشه(برای ویرایش اطلاعات اون سطر گرید ویو)

shahram176
یک شنبه 17 فروردین 1393, 23:27 عصر
این نوشته select را میشه از موضوع نامه بایندش کرد؟

Mohammad_dn
یک شنبه 17 فروردین 1393, 23:33 عصر
این نوشته select را میشه از موضوع نامه بایندش کرد؟:متفکر::متفکر:


اگه میشه بفرماید چجوری میشه کاری کرد که ،
در گریدویو یک سطر رو انتخاب (select) کرد و بعد چند تا تکست باکس بزاریم وبه محض انتخاب سطر مورد نظر اطلاعات اون سطر در تکست باکس نمایش داده بشه(برای ویرایش اطلاعات اون سطر گرید ویو)

میتونی یه یوزر کنترول بسازید....بزاریدش داخل گرید.....داخل یوزر کنترول اطلاعات رو نمایش بدید....برای ویرایش هم میتونید توی یوزر کنترول یه دکمه بزارید تا بعد از کلیک بر روی دکمه یه صفحه برای ویرایش به صورت پاپ آپ باز شه...برای صفحه ی پاپ آپ هم میتونید از ابزار TOOLKIT استفاده کنید

shahram176
یک شنبه 17 فروردین 1393, 23:41 عصر
آقا این یو.زر کنترل چطوری ساخته میشه من تا حالا در این مورد کار نکردم

sajad_boj71
یک شنبه 17 فروردین 1393, 23:57 عصر
:متفکر::متفکر:


میتونی یه یوزر کنترول بسازید....بزاریدش داخل گرید.....داخل یوزر کنترول اطلاعات رو نمایش بدید....برای ویرایش هم میتونید توی یوزر کنترول یه دکمه بزارید تا بعد از کلیک بر روی دکمه یه صفحه برای ویرایش به صورت پاپ آپ باز شه...برای صفحه ی پاپ آپ هم میتونید از ابزار TOOLKIT استفاده کنید
ممنون از پاسختون...
راه دیگه ای نیست داخل همون صفحه (همون جور که در بالا گفتم) ویرایش رو انجام بدم؟

Mohammad_dn
دوشنبه 18 فروردین 1393, 00:15 صبح
خوب یوزر کنترول که صفحه ی جدا نیست.....

sajad_boj71
دوشنبه 18 فروردین 1393, 02:10 صبح
برای ویرایش هم میتونید توی یوزر کنترول یه دکمه بزارید تا بعد از کلیک بر روی دکمه یه صفحه برای ویرایش به صورت پاپ آپ باز شه...برای صفحه ی پاپ آپ هم میتونید از ابزار TOOLKIT استفاده کنید
فک کنم منظورتون تولکیت های Ajax باشه.
میشه خودتون یک TOOLKIT برای باز شدن به صورت پاپ آپ (مناسب برای یک وبسایت خبری) معرفی کنید؟ من چیز بدرد بخوری پیدا نکردم

ممنون

sajad_boj71
دوشنبه 18 فروردین 1393, 09:23 صبح
اگه یک پروژه هم خودتون بسازید بزارید برام ممنون میشم. :خجالت:

sajad_boj71
سه شنبه 19 فروردین 1393, 13:29 عصر
لطفا راهنمایی کنید :افسرده:

fakhravari
سه شنبه 19 فروردین 1393, 16:00 عصر
شما فقط حالت mouseover میخواهید؟

sajad_boj71
سه شنبه 19 فروردین 1393, 16:51 عصر
شما فقط حالت mouseover میخواهید؟
نه هر چی شد...
گرید ویو من شکل زیره؛
117766
موقعی که روی edit کلیک میکنم به شکل زیر تغییر میکنه که، همونطور که میبینید زیاد جای مناسبی برای ویرایش(مخصوصا قسمت content) نیست،میخوام یک قابلیت باشه که بتونم بطور کامل ویرایش رو انجام بدم حالا از هر روشی که شد.
117767
ممنون

fakhravari
سه شنبه 19 فروردین 1393, 17:33 عصر
بای از حالت تمپلت استفاده کنید.
نمونه برای گرید پیدا کنید
<asp:DetailsView ID="DetailsView1" runat="server" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" Height="50px" Width="100%" AutoGenerateRows="False"
DataKeyNames="ID" DefaultMode="Insert">
<AlternatingRowStyle BackColor="White" />
<CommandRowStyle BackColor="#D1DDF1" Font-Bold="True" />
<EditRowStyle BackColor="#2461BF" />
<FieldHeaderStyle BackColor="#DEE8F5" Font-Bold="True" />
<Fields>
<asp:BoundField DataField="ID" HeaderText="کد" InsertVisible="False" ReadOnly="True"
SortExpression="ID" />
<asp:BoundField DataField="Name" HeaderText="ناد درس" SortExpression="Name" />
<asp:BoundField DataField="Tuition" HeaderText="شهريه" SortExpression="Tuition" />



<asp:TemplateField HeaderText="توضيحات">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Height="136px" TextMode="MultiLine"
Width="535px" Text='<%# Bind("Description") %>'></asp:TextBox>
</ItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Height="136px" TextMode="MultiLine"
Width="535px" Text='<%# Bind("Description") %>'></asp:TextBox>
</InsertItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Height="136px" TextMode="MultiLine"
Width="535px" Text='<%# Bind("Description") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>







<asp:CommandField ShowInsertButton="True" />




</Fields>





<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
</asp:DetailsView>

sajad_boj71
سه شنبه 19 فروردین 1393, 19:28 عصر
بای از حالت تمپلت استفاده کنید.
نمونه برای گرید پیدا کنید

نمونه از کجا برای گرید پیدا کنم؟!

fakhravari
چهارشنبه 20 فروردین 1393, 16:03 عصر
http://msdn.microsoft.com/en-us/library/ms972948.aspx
سرچ
edit template gridview asp.net

sajad_boj71
چهارشنبه 20 فروردین 1393, 17:04 عصر
http://msdn.microsoft.com/en-us/library/ms972948.aspx
سرچ
edit template gridview asp.net
ممنون از پاسختون،قبلا سرچ کردم این موارد رو و کار با <ItemTemplate> رو بلدم، ولی باز هم بخش contents برای متنهای بزرگ مناسب نیست.
اگه میشد سطر رو select میکردم و ویرایش رو در ckeditor انجام میدادم عالی میشد.امکانش هست آیا؟

Mohammad_dn
چهارشنبه 20 فروردین 1393, 21:42 عصر
بله هست...یه نمونه برای ویرایش سریع رکورد

http://upload.sarkeshan.ir/Download.aspx?key=ebjhvw1guy4u3ecsj4dbeexh917172

فقط باید فایل های Ckeditor رو به پروژت اضافه کنی

در ضمن اطلاعات مربوط به بانکم تغییر بده تا به بانک خودت وصل بشه

sajad_boj71
پنج شنبه 21 فروردین 1393, 00:56 صبح
بله هست...یه نمونه برای ویرایش سریع رکورد

http://upload.sarkeshan.ir/Download.aspx?key=ebjhvw1guy4u3ecsj4dbeexh917172

فقط باید فایل های Ckeditor رو به پروژت اضافه کنی

در ضمن اطلاعات مربوط به بانکم تغییر بده تا به بانک خودت وصل بشه

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

mRizvandi
پنج شنبه 21 فروردین 1393, 01:37 صبح
دوست عزیز مورد اول در خصوص انتخاب سطری گریدویو می تونید از جاوا اسکریپت استفاده کنید:

این کدها رو به صفحه اضافه کنید:


<script language="javascript" type="text/javascript">
var oldgridSelectedColor;
var oldgridTextColor;
function setMouseOverColor(element) {
oldgridSelectedColor = element.style.backgroundColor;
oldgridTextColor = element.style.color;
element.style.backgroundColor = '#4a566e';//رنگ زمینه سطر
element.style.cursor = 'pointer';//شکل اشاره گر موس
element.style.color = "#ffffff";//رنگ نوشته
}
function setMouseOutColor(element) {
element.style.backgroundColor = oldgridSelectedColor;
element.style.color = oldgridTextColor;
element.style.textDecoration = 'none';
}
</script>
خب حالا باید در رویداد RowDataBound کد جاوا اسکریپت رو به سطر بایند کنید، به مثال زیر دقت کنید:


protected void GridViewName_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "javascript:setMouseOverColor(this);";
e.Row.Attributes["onmouseout"] = "javascript:setMouseOutColor(this);";
e.Row.Attributes.Add("onclick", Page.GetPostBackClientEvent(GridViewName, "Select$" + e.Row.RowIndex.ToString()));
}
}
خب همه چی تمومه. (راستی توی این حالت نیازی نیست که select فعال باشه)
یکی از دوستان هم گفته بود که پست بک می کنه، که البته این فکر می کنم موضوع پست بک با انتخاب سطری تناسب و تناقضی نداره، برای پست بک هم می تونید از updatepanel استفاده کنید.

برای موضوع بعدی که می خواهید ویرایش کنید، پیشنهاد می کنم از FormView استفاده کنید، تمام قالبندی اون دست خودتون هست.

sajad_boj71
پنج شنبه 21 فروردین 1393, 19:44 عصر
دوست عزیز مورد اول در خصوص انتخاب سطری گریدویو می تونید از جاوا اسکریپت استفاده کنید:

این کدها رو به صفحه اضافه کنید:


<script language="javascript" type="text/javascript">
var oldgridSelectedColor;
var oldgridTextColor;
function setMouseOverColor(element) {
oldgridSelectedColor = element.style.backgroundColor;
oldgridTextColor = element.style.color;
element.style.backgroundColor = '#4a566e';//رنگ زمینه سطر
element.style.cursor = 'pointer';//شکل اشاره گر موس
element.style.color = "#ffffff";//رنگ نوشته
}
function setMouseOutColor(element) {
element.style.backgroundColor = oldgridSelectedColor;
element.style.color = oldgridTextColor;
element.style.textDecoration = 'none';
}
</script>
خب حالا باید در رویداد RowDataBound کد جاوا اسکریپت رو به سطر بایند کنید، به مثال زیر دقت کنید:


protected void GridViewName_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "javascript:setMouseOverColor(this);";
e.Row.Attributes["onmouseout"] = "javascript:setMouseOutColor(this);";
e.Row.Attributes.Add("onclick", Page.GetPostBackClientEvent(GridViewName, "Select$" + e.Row.RowIndex.ToString()));
}
}
خب همه چی تمومه. (راستی توی این حالت نیازی نیست که select فعال باشه)
یکی از دوستان هم گفته بود که پست بک می کنه، که البته این فکر می کنم موضوع پست بک با انتخاب سطری تناسب و تناقضی نداره، برای پست بک هم می تونید از updatepanel استفاده کنید.

برای موضوع بعدی که می خواهید ویرایش کنید، پیشنهاد می کنم از FormView استفاده کنید، تمام قالبندی اون دست خودتون هست.

ممنون از پاسختون،ولی جواب نگرفتم،موقعی که روی edit کلیک میکنم اتفاق خاصی در gridview نمیفته،
اگر ممکنه همین کدهایی که ذکر کردید رو در یک پروژه آماده بزارید دانلود کنم

Mohammad_dn
پنج شنبه 21 فروردین 1393, 20:19 عصر
من پروژه رو یک بار دیگه تست کردم..مشکلی نداره ...احتمالا شما یک جا اشتباه کردید

http://upload.sarkeshan.ir/Uploads/1qsnqc0q1qc1ki2asx020a3e69904/M.jpg

mRizvandi
جمعه 22 فروردین 1393, 00:41 صبح
ممنون از پاسختون،ولی جواب نگرفتم،موقعی که روی edit کلیک میکنم اتفاق خاصی در gridview نمیفته،
اگر ممکنه همین کدهایی که ذکر کردید رو در یک پروژه آماده بزارید دانلود کنم
دوست عزیز متوجه نشدم منظورتون چی هست.
اون کدهایی که من دادم خدمتتون برای انتخاب سطری است. وقتی موس روی یک سطر بره، کل سطر تغییر رنگ میده و اگر کاربر کلیک کنه، انگار که دکمه select از گریدویو رو زده.
یک نکته هم داره و اون این هست که اگر دکمه های دیگه ای مثل حذف یا ویرایش در گرید دارید، به مساله برخواهید خورد. اونم اینه که کلیک اول به کدوم میرسه؟ اگر دقیقا روی کلمات حذف یا ویرایش کلیک نکنید، مثل این میمونه که روی انتخاب کلیک کردید. پس بهتره این کد زمانی که گرید فقط برای نمایش عادی است مورد استفاده قرار بگیره.
یک تاپیک ایجاد کردم و سورس رو توی اون تاپیک اتچ کردم که بقیه دوستان هم اگر نیاز بود استفاده کنند.
http://barnamenevis.org/showthread.php?447846-چطور-یک-گریدویو-بسازیم-که-بشه-برای-انتخاب-روی-سطر-کلیک-کنیم-و-از-select-استفاده-نکنیم؟

sajad_boj71
جمعه 22 فروردین 1393, 07:23 صبح
دوست عزیز متوجه نشدم منظورتون چی هست.
اون کدهایی که من دادم خدمتتون برای انتخاب سطری است. وقتی موس روی یک سطر بره، کل سطر تغییر رنگ میده و اگر کاربر کلیک کنه، انگار که دکمه select از گریدویو رو زده.
یک نکته هم داره و اون این هست که اگر دکمه های دیگه ای مثل حذف یا ویرایش در گرید دارید، به مساله برخواهید خورد. اونم اینه که کلیک اول به کدوم میرسه؟ اگر دقیقا روی کلمات حذف یا ویرایش کلیک نکنید، مثل این میمونه که روی انتخاب کلیک کردید. پس بهتره این کد زمانی که گرید فقط برای نمایش عادی است مورد استفاده قرار بگیره.
یک تاپیک ایجاد کردم و سورس رو توی اون تاپیک اتچ کردم که بقیه دوستان هم اگر نیاز بود استفاده کنند.
http://barnamenevis.org/showthread.php?447846-چطور-یک-گریدویو-بسازیم-که-بشه-برای-انتخاب-روی-سطر-کلیک-کنیم-و-از-select-استفاده-نکنیم؟

ممنون از شما،
موقعی که روی هر یک از سطرهای گریدویویی که شما ساختید کلیک میکنم شماره(number) اون سطر رو در قسمت
Selected Row Data:
Selected Data Key Value:
Selected Value:
به ما میده،من میخوام موقعی که روی هر سطر گرید ویو کلیک میکنم سطر انتخاب بشه و محتوای سطر درچند تا تکست باکس (در زیر گرید ویو) نمایش داده بشه و اطلاعات اون سطر در تکست باکس نمایش داده بشه(برای ویرایش اطلاعات اون سطر گرید ویو)
(در ضمن میخوام پروژم به بانک sql متصل باشه)

mRizvandi
جمعه 22 فروردین 1393, 23:04 عصر
من میخوام موقعی که روی هر سطر گرید ویو کلیک میکنم سطر انتخاب بشه و محتوای سطر درچند تا تکست باکس (در زیر گرید ویو) نمایش داده بشه و اطلاعات اون سطر در تکست باکس نمایش داده بشه(برای ویرایش اطلاعات اون سطر گرید ویو)

در مثالی که من ساختم، سطر انتخاب میشه.
شما برای این منظور می تونید از یک FormView کمک بگیرید. یا خودتون همه کنترلهای مورد نظر رو در یک پنل زیر گرید قرار بدید.
زمانی که کاربر یک سطر و انتخاب می کنه، (مثل همون مثال) شما می تونید تشخیص بدید که کاربر کدوم سطر رو انتخاب کرده و مطابق با اون به اطلاعات داخل سطر یا دیتابیس دسترسی پیدا کنید.
حالا باید بر اساس کلیدی که دارید دیتا رو از دیتابیس بخونید و ویرایش کنید و ثبت کنید.