PDA

View Full Version : داونلود کد: اعمال متداول با DataGrid در ASP.NET



Behrouz_Rad
سه شنبه 18 مرداد 1384, 07:16 صبح
در یکی از پروژه هایی که چندی پیش بر روی آن کار می کردم، نیاز به وب فرمی جهت ثبت تقاضاهای مشتریان بود.
در این فرم باید قابلیت ثبت، ویرایش و حذف درجا به کاربر داده میشد.
از آنجا که در این وب فرم، برای ورود و ویرایش اطلاعات از DropDownList و Text Box و برای حذف از CheckBox ها استفاده شده و همچنین حاوی نکات جالبی در مورد نحوه مدیریت رویدادها و چگونگی ارجا به کنترل های درون DataGrid است، خالی از لطف نبود که این فرم به صورت Open Source برای استفاده دوستان قرار بگیره.
انشاا... کمکی در مورد رفع مشکلات دوستان در کار با DataGrid باشد.
توجه: جهت سهولت کار دوستان، تغییرات اندکی در پروژه داده شده. (تغییر دیتابیس از SQL Server به Access، حذف مدیریت تعیین هویت کاربر، تبدیل مدیریت پیچیده خطاها به مدیریت آسان و ...)
پروژه با هر دو زبان VB.NET و C#.NET برای دوستان نوشته شده.
آماده پاسخگویی به سوالات دوستان در مورد خطوط مختلف این پروژه هستم.
لطفا از پرسیدن سوالات کلی خودداری نمایید.

pegasos
سه شنبه 18 مرداد 1384, 09:35 صبح
با عرض سلام و خسته نباشید.
خیلی لطف کردید.

فقط یک خواهش بزرگ.

<b>

توجه: جهت سهولت کار دوستان، تغییرات اندکی در پروژه داده شده. (تبدیل از C#.NET به VB.NET، تغییر دیتابیس از SQL Server به Access، حذف مدیریت تعیین هویت کاربر، تبدیل مدیریت پیچیده خطاها به مدیریت آسان و ...)

</b>
آب دهانم جاری شد.


اگر لطف کنید و همان نمونه اصلی را هم که خودتان کار کرده اید (‍C# + SQL ) ارائه دهید واقعا ممنون می شویم.

پر رو ئی مرا ببخشید.

باز هم از شما متشکریم .

به امید موفقیت.

Behrouz_Rad
سه شنبه 18 مرداد 1384, 09:50 صبح
عزیز جان!
همین کدی رو هم که گذاشتم کلی ریسک کردم.
در متن قرار دادی که با شرکت بسته شده، در صفحه سوم نوشته شده:
.... همچنین حق انتشار کدهای برنامه تنها در اختیار شرکت درخواست دهنده بوده و نویسنده برنامه حق انتشار کدها را به هیچ وجه نخواهد داشت.

tayebeh
سه شنبه 18 مرداد 1384, 10:05 صبح
دست شما درد نکند . خیلی عالی بوددددددددددددددددددددددد دددددددد.

pegasos
سه شنبه 18 مرداد 1384, 11:01 صبح
با عرض سلام مجدد.

خیلی ممنون آقای راد.
ببخشید که ما یک مقدار راحت طلب شده ایم .

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

به امید موفقیت.

SalarSoft
سه شنبه 18 مرداد 1384, 20:43 عصر
Amazingly COOL

Behrouz_Rad
چهارشنبه 19 مرداد 1384, 15:32 عصر
بنا به درخواست تعدادی از دوستان، پروژه رو با زبان C#.net هم آماده کردم.
از تاپیک اصلی داونلود کنید.

AspNet
چهارشنبه 19 مرداد 1384, 23:19 عصر
خسته نباشید

PrinceDotNet
جمعه 21 مرداد 1384, 12:08 عصر
میشه در مورد کد زیر یک توضیحی بدید.

box = eval("document.Form1.DataGrid1__ctl" + i + "_ChkRemove");
مخصوصا" DataGrid1__ctl یعنی چی.

Behrouz_Rad
جمعه 21 مرداد 1384, 17:23 عصر
به منظور جلوگیری از تداخل نام کنترل های موجود در DataGrid، این کنترل ها بدین شکل ایجاد می شوند که ابتدا نام DataGrid (که در این پروژه DataGrid1 نام دارد) می آید. سپس دو کاراکتر Underline به همراه کلمه ctl که مخفف عبارت Control است. سپس یک عدد که معرف آی دی کنترل است.
در ادامه یک کاراکتر Underline و در نهایت نام کنترل اصلی که توسط برنامه نویس به کنترل نسبت داده شده.
متغیر box، با یک حلقه For، به تک تک CheckBox های موجود در DataGrid ارجا داده می شود و سپس علامت خوردن یا نخوردن چک باکس را بررسی می کند.

PrinceDotNet
دوشنبه 24 مرداد 1384, 17:19 عصر
سپس یک عدد که معرف آی دی کنترل است.

آی دی چی.
کدوم کنترل.

Behrouz_Rad
دوشنبه 24 مرداد 1384, 19:02 عصر
آی دی یعنی مشخصه.
هر کنترل دارای یک ID ایه.
مثل تو که یه اسم داری.
این ای دی رو می تونی از طریق مشاهده سورس HTML صفحه ببینی. (در IE از طریق انتخاب گزینه Source از منوی View و در FireFox از طریق انتخاب گزینه Page Source از منوی View)
البته اگر کنترل های دیگه ای به DataGrid اضافه کنی، شماره اختصاص داده شده به کنترل تغییر می کنه.
مقصود از کنترل نیز هر کنترلی است که در DataGrid است وجود دارد و بر اساس تعداد ردیف ها ایجاد می شود.

PrinceDotNet
سه شنبه 25 مرداد 1384, 18:11 عصر
نه منضور من این نبود . شما گفتید اول آی دی datagrid رو مینویسی بعد دو کلمه ی دیگه
((حالا یک عدد که معرف آی دی است .))
اما آی دی دیتا گرید رو که قبلا" نوشتیم پس آی دی چی رو مینویسیم؟

Behrouz_Rad
چهارشنبه 26 مرداد 1384, 08:46 صبح
DataGrid، به کنترل هایی که درونش قرار می گیرن، یک شماره نسبت میده.
در حقیقت، DataGrid، پدر اون کنترل هاست.

PrinceDotNet
چهارشنبه 26 مرداد 1384, 13:38 عصر
فهمیدم ممنون

PrinceDotNet
چهارشنبه 26 مرداد 1384, 13:40 عصر
میشه از این روش برای کنترل های دیگه هم مثل یک check box در صفحه استفاده کرد.

یعنی اگر id اون chk1 باشه میشه
chk1_ctl

PrinceDotNet
چهارشنبه 26 مرداد 1384, 13:43 عصر
اگر میشه در مورد تابع Ctype هم توضیح بدید.

Behrouz_Rad
چهارشنبه 26 مرداد 1384, 14:36 عصر
اون روش مختص کنترل های Container هست.
یعنی کنترل هایی که در برگیرنده کنترل های دیگه هستند. مثل Repeater، DataList، DataGrid و ...
تابع CType برای تبدیل نوع سفارشی به کار میره.
مثلا تابع CInt در VB.NET، برای تبدیل یک نوع داده به Integer استفاده میشه.
در این برنامه، از دستور CType برای تبدیل ارجا به دست آمده به کنترل به نوع آن کنترل استفاده میشه.
البته در VB.NET این عمل نیاز چندانی نداره و تنها برای ساخت یافتگی و رعایت اصول صحیح برنامه نویسی NET. استفاده میشه اما در C#.NET این تبدیل نوع حتما باید صورت بگیره و به طور صریح قادر به ارجا به یک شی نیستید.
موفق باشید.

kochol
چهارشنبه 26 مرداد 1384, 17:30 عصر
سلام آقا بهروز
من از روی کد شما یک کد دیگر ساختم من در یک ریپیتر یک چک باکس گذاشتم و شما که برای شناسایی آی دی از یک لیبل مخفی استفاده می کردید من این ای دی را به تول تیپ این کنترل نسبت دادم ولی وقتی می خواهم استفاده کنم از کد این خطا را می گیره من که نتونستم ایراد ان را بفهم لطفا شما کمکم کنید


<TABLE dir="ltr" id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="1" bordercolor="red"
style="FONT-SIZE: 11pt; FONT-FAMILY: tahoma">
<tr bgcolor="orange" align="center">
<td>نوع محصول</td>
<td>نام محصول</td>
<td>اندازه</td>
<td>امتیاز</td>
<td>تاریخ اضافه شدن</td>
<td>خرید</td>
</tr>
<asp:Repeater ID="rePro" Runat="server">
<ItemTemplate>
<tr bgcolor="DeepSkyBlue" align="center">
<td><%# DataBinder.Eval(Container,"DataItem.type") %></td>
<td align="left"><%# DataBinder.Eval(Container,"DataItem.name") %></td>
<td nowrap="true"><%# DataBinder.Eval(Container,"DataItem.size") %>
KB</td>
<td><%# DataBinder.Eval(Container,"DataItem.voteid") %></td>
<td><%# DataBinder.Eval(Container,"DataItem.datecreated") %></td>
<td>
<asp:CheckBox ID="chkAdd" Runat="server" tooltip='<%# DataBinder.Eval(Container,"DataItem.proid") %>'>
</asp:CheckBox></td>
</tr>
</ItemTemplate>
</asp:Repeater>


و در قسمت کد بیهایند هم نوشتم


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim chkRemove As WebControls.CheckBox
Dim strIDs As String = ""
Dim boolCheck As Boolean = False

For Each d As RepeaterItem In rePro.Items
chkRemove = CType(rePro.FindControl("chkAdd"), WebControls.CheckBox)
If chkRemove.Checked Then
boolCheck = True
strIDs += chkRemove.ToolTip() & ","
End If
Next

ولی خطای زیر را می گیره لطفا مرا راهنمایی کنید
Object reference not set to an instance of an object

kochol
چهارشنبه 26 مرداد 1384, 17:36 عصر
سلام
متاسفانه کد html منو تبدیل می کنه شما برای دیدن کد من روی دکمه qoute کلیک کنید
راستی واقعا برنامه جالبی نوشتید ممنون

PrinceDotNet
چهارشنبه 26 مرداد 1384, 19:10 عصر
میشه بگید چرا بعضی وقتها پرو÷ه های شما یا دیگر سایتها رو وقتی تو vs میخوام اجرا کنم پیغام ختای زیر رو میده.
visual studio .net can not creat application.the likeliest problem is that requeir commponentsare not installedon the local web server.Run visual studio .netsetup and add the web development component

PrinceDotNet
چهارشنبه 26 مرداد 1384, 19:44 عصر
اگر بخواهیم این نوع پیغام دادن با java رو روی کنترلهای معمولی یعنی اینکه تو کنترل دیگه ای نباشه رو انجام داد باید چکار کرد؟

Behrouz_Rad
چهارشنبه 26 مرداد 1384, 22:52 عصر
جناب kochol، زمانی که قصد نوشتن کدهای HTML رو در ادیتور دارید، فعلا از کاراکتر T به جای علامت بزرگتر-کوچکتر استفاده کنید تا مشکل ادیتور برطرف بشه.
شما گفتید که ID رو به خاصیت ToolTip کنترل Label نسبت دادید، اما در کدی که گذاشتید، این ID رو از خاصیت ToolTip کنترل CheckBox می خونید!

کاربر PrinceDotNet، خطایی که گرفته میشه بدین دلیل هست که پروژه بنده در مسیری ایجاد شده که به منظور اجرای صحیح بر روی سیستم شما نیز باید در آن مسیر کپی شود.
راه دیگه هم اینه که دو فایل webproj و sln پروژه رو در Notepad باز کنید و خطوطی که مربوط به مسیر ایجاد پروژه بر روی سیستم بنده هست رو با تنظیمات IIS خود Map کنید.
به منظور سهولت کار، پروژه رو در Inetpub/wwwroot کپی و HomeDirectory را در IIS به همین مسیر تنظیم کنید.
و اما...
تفاوتی نمیکنه...
به منظور الصاق یک تابع جاوا به یک کنترل، از دستوری شبیه به دستور زیر استفاده کنید:


myControl.Attributes.Add("onclick","myFunction()")

اولین آرگومان، نام روال و دومین آرگومان، نام تابع جاوا اسکریپت را مشخص می کند.
موفق باشید.

PrinceDotNet
پنج شنبه 27 مرداد 1384, 01:51 صبح
خیلی خیلی ممنون

kochol
شنبه 29 مرداد 1384, 09:24 صبح
با سلام
من کد ها رو اون طوری که گفتید تغییر دادم و می ذارم اینجا
من این چند روزه همش داشتم باهش سروکله می زدم ولی نتونستم درستش کنم دیگه داره اشکم در می یاد لطفا مرا کمک کنید من که هر چی زور داشتم زدم


Tasp:Repeater ID="rePro" Runat="server"T
THeaderTemplateT
TTABLE dir="ltr" id="Table1" cellSpacing="0" cellPadding="0" width="100%" border="1" bordercolor="red"
style="FONT-SIZE: 11pt; FONT-FAMILY: tahoma"T
Ttr bgcolor="orange" align="center"T
TtdTنوع محصولT/tdT
TtdTنام محصولT/tdT
TtdTاندازهT/tdT
TtdTامتیازT/tdT
TtdTتاریخ اضافه شدنT/tdT
TtdTخریدT/tdT
T/trT
T/HeaderTemplateT
TItemTemplateT
Ttr bgcolor="WhiteSmoke" align="center"T
TtdTT%# DataBinder.Eval(Container,"DataItem.type") %TT/tdT
Ttd align="left"TT%# DataBinder.Eval(Container,"DataItem.name") %TT/tdT
Ttd nowrapTT%# DataBinder.Eval(Container,"DataItem.size") %T
KBT/tdT
TtdTT%# DataBinder.Eval(Container,"DataItem.voteid") %TT/tdT
TtdTT%# DataBinder.Eval(Container,"DataItem.datecreated") %TT/tdT
Ttd bgcolor="Lavender"T
Tasp:CheckBox ID="chkAdd" Runat="server" tooltip='T%# DataBinder.Eval(Container,"DataItem.proid") %T'T
T/asp:CheckBoxTT/tdT
T/trT
T/ItemTemplateT
T/asp:RepeaterT


اینهم کد سمت سرور


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim chkRemove As WebControls.CheckBox
Dim strIDs As String = ""
Dim boolCheck As Boolean = False

For Each d As RepeaterItem In rePro.Items
chkRemove = CType(rePro.FindControl("chkAdd"), WebControls.CheckBox)
If chkRemove.Checked Then
boolCheck = True
strIDs += chkRemove.ToolTip() & ","
End If
Next
Response.Write(strIDs)
End Sub

PrinceDotNet
دوشنبه 31 مرداد 1384, 14:33 عصر
میشه در مورد sub روتین DataGrid1_ItemDataBound توضیح بدید.

یعنی چه موقع اتفاق می افتد؟

زهرا قاسمی
سه شنبه 01 شهریور 1384, 14:57 عصر
فونت های فارسی بعضی هاش تغییر کرده و یه سری کاراکتر نامفهوم شده!ولی بعضی هاش درسته!برای اینکه عنوان ستون های فرم رو فارسی ببینیم باید چی کار کنیم؟

Behrouz_Rad
پنج شنبه 10 شهریور 1384, 17:29 عصر
کاربر PrinceDotNet!
روال ItemDataBound پس از ایجاد یک ردیف از DataGrid اتفاق می افتد و تفاوت آن با روال ItemCreated در این است که روال ItemDataBound شامل اطلاعات دیتابیس است اما روال ItemCreated شامل هیچ اطلاعاتی از داده های موجود در دیتابیس نیست.

خانم زهرا قاسمی!
احتمالا مشکل از ویندوز شماست!
تمامی وب فرم ها به صورت Unicode ذخیره شده اند و بدون هیچ مشکلی در نمایش حروف فارسی عمل می کنند.

موفق باشید.

mahboobeh
یک شنبه 20 شهریور 1384, 15:36 عصر
اول خیلی تشکر میکنم ازتون به خاطر پرو÷ه .

بعد می خواستم بپرسم که من از بعضی قسمتها استفاده کردم اما در قسمت SCRIPT از BOX.CHECKED خطا می گیره میگه تعریف نشده است به نظرتون چرا؟

mahboobeh
یک شنبه 20 شهریور 1384, 16:48 عصر
یه اشکال دیگه هم که داشتم این بود:
strChildPiece = ((DataBoundLiteralControl) e.Item.Cells[2].Controls[0]).Text

DataBoundLiteralControl برای چی استفاده شده موقع اجرا روی edit که می زنم ازش خطا می گیره.

mahboobeh
یک شنبه 20 شهریور 1384, 20:53 عصر
ببخشید این اخریشه دیگه امیدوارم 3 تاشو جواب بدید

من
( public void doInsert(object sender, DataGridCommandEventArgs e
}
{
رو از برنامه شما کپی کردم اما موقع اجرا بعد از زدن دکمه اضافه واردش نمیشه میشه بگید از کجا باید بیارمش؟
توی رخدادهای دیتا گرید که doinsert نداریم .
ببخشید که من زیادی سئوال کردم اگه اینا رو لطف کنید جواب بدید دیگه تکرار نمیشه.

mahboobeh
سه شنبه 22 شهریور 1384, 20:50 عصر
جواب این سوالها رو پیدا کردم اولی که چیزی نبو د دومی هم باید از label استفاده می کردم سومی هم باید به جای doinsert از item commandاستفاده می کردم



اما... حالا یه مشکل جدید پیش اومده وقتی ازallow paging برای صفحه صفحه کردن استفاده می کنم بعد وقتی می خوام رکوردی رو حذف کنم script رویbox cheked خطا می گیره
میدونید چیکار باید بکنم؟امیدوارم این یکی رو دیگه جواب بدید.

roya2002_80
چهارشنبه 18 آبان 1384, 12:23 عصر
با سلام .
کدی که گذاشته اید خیلی خیلی عالی است و من کلی لستفاده کردم.. دستتان درد نکند.
من یک سوالی دارم اینکه وقتی datagrid را صفحه بندی می کنم دکمه حذف کار نمی کند لطفا به من بگویید که چه کار کنم.
با تشکر

Behrouz_Rad
چهارشنبه 18 آبان 1384, 18:47 عصر
تابع جاوا اسکریپت confirmDelete موجود در فایل aspx را به شکل زیر تغییر دهید:


function confirmDelete()
{
var j= <%= DataGrid1.Items.Count %>
var xCounter = 0;
for (i=3; i < j+3; i++)
{
box = eval("document.Form1.DataGrid1__ctl" + i + "_ChkRemove");
if (box.checked == true)
++xCounter;
}
if (xCounter == 0)
{
alert("!هیچ رکوردی انتخاب نشده است");
return false;
}
else
return confirm("آیا مطمئن به حذف " +xCounter+ " رکورد انتخابی هستید؟")
}

roya2002_80
جمعه 27 آبان 1384, 10:07 صبح
باسلام
من کدی را که گفته بودید را گذاشتم و کد جاوا اسکریپت دکمه حذف کار می کند ولی سراغ item_command نمی رود ؟ حال برای حل مشکل چکار باید کرد؟
با تشکر

roya2002_80
یک شنبه 29 آبان 1384, 07:16 صبح
آقای راد لطفا جواب بدهید؟

Behrouz_Rad
یک شنبه 29 آبان 1384, 10:06 صبح
شما چقدر عجولید خانم!
به آخرین پست خود در این تاپیک 9 روز بعد برای گرفتن جواب سر می زنید اما طاقت تحمل یک روز برای رسیدن به جواب رو ندارید؟

جواب سوالتون رو نمی دونم...

naserikarimi
پنج شنبه 27 بهمن 1384, 02:33 صبح
میشه خواهش کنم ورژن دیتابیس SQL رو هم بذارید واسه دانلود

reza_reza_shirazi
جمعه 28 بهمن 1384, 15:35 عصر
لطفا به من کمک کنید :

1- چطوری میتوانم رویداد SELECTED INDEX CHANGE مربوط به DATAGRID را در سمت CLIENT یعنی بدون این که صفحه POSTBACK بشود انجام دهم و مقدار فیلد کلیدی آن ردیف را دریافت کنم ؟

hamed_bostan
شنبه 05 فروردین 1385, 14:27 عصر
اقا بهروز سلام من اون روز تاحالا تازه دیشب این فایل شما رو باز کردم و دیدم . دستت درد نکنه بابا سنگ تموم گداشتی خودمونیم ها .
یا حق

iekrang
چهارشنبه 24 خرداد 1385, 09:57 صبح
با سلام.
ممنون از این کد واقعاً کاملی که گذاشتید.
در صورت امکان در مورد این قسمت از برنامتون یکم توضیح بدید.ممنون.


protected void DropDown_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList xList = (DropDownList) sender;
string strChildPieceSQL = "SELECT * FROM tblChildPiece WHERE intID=" + Convert.ToInt32(xList.SelectedValue.ToString());
TableCell Cell = (TableCell) xList.Parent;
DataGridItem Item = (DataGridItem) Cell.Parent;
DropDownList ModelList = (DropDownList) Item.Cells[2].Controls[1];
OleDbConnection Cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath(".\\Data\\myDB.mdb"));
OleDbDataAdapter Da;
DataSet Ds;
Da = new OleDbDataAdapter(strChildPieceSQL, Cnn);
Ds = new DataSet();
Da.Fill(Ds, "tblChildPiece");
ModelList.DataSource = Ds.Tables[0].DefaultView;
ModelList.DataTextField = "strSubPieceName";
ModelList.DataValueField = "strSubPieceName";
ModelList.DataBind();
ListItem xChildItem = ModelList.Items.FindByText(strChildPiece.Trim());
if (xChildItem != null) xChildItem.Selected = true;
}

par_parvaz
یک شنبه 09 مهر 1385, 14:43 عصر
:متفکر: سلام
چطور می توان اطلاعات مربوط به چندین کالا را در یک فرم وارد کنم به گونه ای که پس از وارد کردن اطلاعات در سطر اول با فشردن دکمه enter سطر جدیدی ایجاد شود تا اطلاعات مربوط به کالای بعدی را وارد کنیم. (فرم به صورت جدول باشد)
با تشکر.

rasti_web
شنبه 25 آذر 1385, 20:55 عصر
لطفا در مورد شمارنده حلقه در این تابع توضیح دهید .
()function select_deselectAll

محسن بابائی
یک شنبه 03 دی 1385, 06:57 صبح
آقای راد دستتون درد نکنه . همه چی داره به جز یه Search که اگر بزارید تکمیل میشه

rasti_web
جمعه 22 دی 1385, 19:27 عصر
دیتا گرید این فایل دارای Paging نیست اگر DataGrid دارای Paging باشد دکمه انتخاب همه خطای جاوا میدهد . چطور میتوان مشکل را حل کرد؟

mp2009
سه شنبه 27 شهریور 1386, 11:44 صبح
سلام به تمامی کاربران محترم سایت
یه مشکل کوچولو دارم ببینم کسی میتونه کمک کنه

من یه دونه گرید ویو دارم که یکی از سطونهاش چک باکس هست
میخواهم کاربر هر سطی رو که تیک زد حذف کنه


این کد من هست



CheckBox chkRemove=newCheckBox();
DataBoundLiteralControl DBLC;
string strIDs= "";
bool boolCheck= false;
foreach (GridViewRow gvRow in GridView_NewsList.Rows)
{
chkRemove = (CheckBox)GridView_NewsList.FindControl("ChkRemove");
if (chkRemove.Checked == true)
{
boolCheck = true;

DBLC = (DataBoundLiteralControl)GridView_NewsList.FindCon trol("ItemNumRemove").Controls[0];
strIDs += DBLC.Text + ",";

}
}
if (boolCheck == true)
{

string strSQL = "Delete * From news Where Id IN ('" + strIDs.Substring(0, strIDs.LastIndexOf(",")) + "')";
SqlConnection con = newSqlConnection(st);
SqlCommand cmd = newSqlCommand(strSQL,con);

try
{
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (SqlException ex)
{
Response.Write(ex.Message.ToString());
}
finally
{

}
}


اینم کد گرید ویو



<asp:GridViewID="GridView_NewsList"runat="server"AutoGenerateColumns="False"DataKeyNames="Id"
DataSourceID="SqlDataSource1"Font-Names="Tahoma"Font-Size="9pt"Font-Strikeout="False"
Width="732px"OnSelectedIndexChanged="GridView_NewsList_SelectedIndexChanged"OnRowDataBound="GridView_NewsList_RowDataBound"EmptyDataText="چیزی برای نمایش وجود ندارد"AllowPaging="True"OnRowDeleting="GridView_NewsList_RowDeleting"ShowFooter="True">
<FooterStyleBackColor="Wheat"/>
<EmptyDataRowStyleBackColor="SteelBlue"Wrap="True"/>
<Columns>
<asp:TemplateField>
<FooterTemplate>
<asp:ButtonID="btnRemove"runat="server"BackColor="#FFC080"BorderStyle="Solid"
BorderWidth="1px"CommandName="delete"Font-Names="Tahoma"Font-Size="11px"Height="22px"
Text="حذف"Width="64px"/>
</FooterTemplate>
<ItemTemplate>
<asp:CheckBoxID="ChkRemove"runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandFieldButtonType="Button"DeleteText="حذف خبر"SelectText="ویرایش"ShowSelectButton="True"UpdateText="save">
<ItemStyleBorderWidth="1px"/>
<ControlStyleBackColor="Gainsboro"BorderColor="#404040"BorderWidth="1px"/>
</asp:CommandField>
<asp:BoundFieldDataField="Username"HeaderText="نویسنده"SortExpression="Username"/>
<asp:BoundFieldDataField="Time"HeaderText="ساعت درج"SortExpression="Time">
<ItemStyleWidth="100px"/>
</asp:BoundField>
<asp:BoundFieldDataField="Date"HeaderText="تاریخ"SortExpression="Date"/>
<asp:TemplateFieldFooterText="خلاصه خبر"HeaderText="خلاصه خبر"SortExpression="Body">
<ItemStyleWidth="150px"/>
<ItemTemplate>
&nbsp;<asp:PanelID="Panel2"runat="server"Height="50px"ScrollBars="Vertical"Width="221px">
<asp:LabelID="Label1"runat="server"Text='<%# Eval("Body") %>'></asp:Label></asp:Panel>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateFieldFooterText="عنوان"HeaderText="عنوان">
<ItemStyleWidth="130px"/>
<ItemTemplate>
&nbsp;&nbsp;
<asp:LabelID="Label5"runat="server"Text='<%# Eval("Title") %>'></asp:Label>&nbsp;
</ItemTemplate>
<AlternatingItemTemplate>
&nbsp;
</AlternatingItemTemplate>
</asp:TemplateField>
<asp:BoundFieldDataField="Id"HeaderText="کد خبر"InsertVisible="False"ReadOnly="True"
SortExpression="Id">
<ItemStyleWidth="35px"/>
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:LabelID="ItemNumRemove"runat="server"Visible="False"Text='<%# Eval("Id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyleBackColor="InactiveCaptionText"/>
<EditRowStyleBackColor="CornflowerBlue"/>
<SelectedRowStyleBackColor="PeachPuff"/>
<HeaderStyleBackColor="Wheat"Font-Names="Arial"Font-Size="Medium"ForeColor="#400000"/>
</asp:GridView>


وقتی اجرا میکنم این ارور رو میده




Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

mehdi_sql2008
سه شنبه 14 اسفند 1386, 14:22 عصر
با عرض سلام و خسته نباشید.
خیلی لطف کردید.

فقط یک خواهش بزرگ.

<b>

توجه: جهت سهولت کار دوستان، تغییرات اندکی در پروژه داده شده. (تبدیل از C#.NET به VB.NET، تغییر دیتابیس از SQL Server به Access، حذف مدیریت تعیین هویت کاربر، تبدیل مدیریت پیچیده خطاها به مدیریت آسان و ...)

</b>
آب دهانم جاری شد.


اگر لطف کنید و همان نمونه اصلی را هم که خودتان کار کرده اید (‍C# + SQL ) ارائه دهید واقعا ممنون می شویم.

پر رو ئی مرا ببخشید.

باز هم از شما متشکریم .

به امید موفقیت.
سلام
من منبع خوبی راجب sql sever 2000 البته حرفه ای می خوام

razi-kariman
دوشنبه 30 اردیبهشت 1392, 21:33 عصر
سلام
ممنون بابت لینک
خیلی عالی بود
ولی میشه یک مثال هم از Radio Button ها بذارید
واقعا ممنون