PDA

View Full Version : سوال: تغییر خودکار گرید با تغییر در جدول



asiehmohammadian
پنج شنبه 20 آذر 1393, 18:33 عصر
سلام به همه
دوستان یک سوالی دارم
میشه در mvc گریدی ساخت که با تغییر درجدول ( زیاد یا کم شدن ستونها ) به صورت خودکار تغییرات در گرید هم اتفاق بیافته ؟
نمیخوام از کندو استفاده کنم اگر روش دیگری میدونید ممنون میشم راهنماییم کنید

asiehmohammadian
پنج شنبه 20 آذر 1393, 23:04 عصر
دوستان اینهمه بازدید یعنی حتی یکنفر این تجربه رو نداشته ؟!!
خواهش می کنم راهنماییم کنید

kahkeshane2012
جمعه 21 آذر 1393, 00:02 صبح
خانم مهندس هیچ کاری نشد نداره من خودم این کارا نکردم اما به نظرم اون اکشنی که برای تغییر تیبل شما هست ینی همان edit شما همان برای گرید هم فراخونی بشه فقط باید فیلدهای جدول با گرید همسان باشه. موفق و موید باشید.

asiehmohammadian
جمعه 21 آذر 1393, 12:42 عصر
ممنون دوست عزیز
ولی میشه واضح تر توضیح بدید؟
من میخوام گریدم وبه جدول بایند کنم یک چیزی شبیه وب فرم
وخودش تغییرات در جدول و اعمال کنه

kahkeshane2012
جمعه 21 آذر 1393, 14:11 عصر
شما فیلدهاتون باید مثله هم باشه مثلا اینکه توی جدولتون فیلد نام نام خانوادگی ایمیل تلفن آدرس ..... دارید ؛گرید شما هم یا باید زیرمجموعه ای از این فیلدها باشه یا همسان باشه؛ حالا برفرض مثلا شما یک action نوشتی با نام Edit که این اکشن بایند شده به جدول شما ؛خب از اونجایی که فیلدها همسان هستن نمیاید یه اکشن دیگه تعریف کنید ؛همزمان شما میتونید یه واکشی از دیتابیس برای گرید بگیرید که قاعدتا باید جواب بده. چون داده ی دیتابیس شما تغییر کرده؛ پس میای یه اکشن Edit برای table ت مینویسی ؛یک اکشن select هم برای grid مینویسی که این دو تا همزمان فراخوانی میشه.
امیدوارم تونسته باشم منظورما بفهمونم. موفق باشید.

TeacherMath
جمعه 21 آذر 1393, 14:27 عصر
باید ستونها و سطرها در یک for قرار گیرد.


<table>
<thead>
<tr>
@foreach (var item in Model.getsCols())
{ <th>item.Name</th>
}
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{ <tr>
<td>item.Name</td>
</tr>
}
</tbody>
</table>



public class PersonModels {
public string Name { get; set; }




public static string[] getsCols()
{
string[] Cols={"A","B","C"};
return Cols;
}




}

asiehmohammadian
جمعه 21 آذر 1393, 15:46 عصر
شما فیلدهاتون باید مثله هم باشه مثلا اینکه توی جدولتون فیلد نام نام خانوادگی ایمیل تلفن آدرس ..... دارید ؛گرید شما هم یا باید زیرمجموعه ای از این فیلدها باشه یا همسان باشه؛ حالا برفرض مثلا شما یک action نوشتی با نام Edit که این اکشن بایند شده به جدول شما ؛خب از اونجایی که فیلدها همسان هستن نمیاید یه اکشن دیگه تعریف کنید ؛همزمان شما میتونید یه واکشی از دیتابیس برای گرید بگیرید که قاعدتا باید جواب بده. چون داده ی دیتابیس شما تغییر کرده؛ پس میای یه اکشن Edit برای table ت مینویسی ؛یک اکشن select هم برای grid مینویسی که این دو تا همزمان فراخوانی میشه.
امیدوارم تونسته باشم منظورما بفهمونم. موفق باشید.
ممنون دوست عزیز از پاسختون
متوجه شدم منظور شما چی هست
ولی مشکل من این سمت قضیه نیست ، یعنی من در قسمت کنترل واکشن ها مشکلی ندارم چون اونجا یک سلکت از جدول گرفته میشه وقاعدتا چیزی که داخل جدول هست در گرید نشون داده میشه
مشکل من در قسمت ویو هست
شما وقتی از وب گرید استفاده می کنید نام ستونهارا بهش میدید
مثلا اینطوری میشه :

@using (@Html.BeginForm("Index", "Home"))
{
var grid = new WebGrid(Model.Studentmodel,canSort:false);


<div>
@grid.GetHtml(columns:
grid.Columns
(
grid.Column("ID", "Stud ID"),
grid.Column("Name", "Stud Name"),
grid.Column("Class", "Class"),
grid.Column("Section", "Section"),
grid.Column("Address", "Address")
), mode: WebGridPagerModes.Numeric)
</div>

یعنی دارید بهش می گید من یک جدول دارم به این اسسم واین جدول شامل این ستوها است به این اسامی
من این ونمیخوام
من میخوام بهش بگم یک جدول دارم که این جدول دوتا صفت سطر وستون داره براساس ستون این جدول خودت گرید وبساز
دیگه برای هرستون کدننویسم
ممنون

asiehmohammadian
جمعه 21 آذر 1393, 15:49 عصر
باید ستونها و سطرها در یک for قرار گیرد.


<table>
<thead>
<tr>
@foreach (var item in Model.getsCols())
{ <th>item.Name</th>
}
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{ <tr>
<td>item.Name</td>
</tr>
}
</tbody>
</table>



public class PersonModels {
public string Name { get; set; }




public static string[] getsCols()
{
string[] Cols={"A","B","C"};
return Cols;
}




}
بسیار ممنونم از پاسختون
کد شما خیلی به چیزی که در ذهن من هست نزدیکه
فقط یک سوال دارم اونم اینکه شما دراین کد گرید نمیسازید درواقع براساس مدلتون لیست می سازید
وآیا قابلیت هایی که گرید داره ویرایش، اضافه ،حذف وآپدیت و میشه روش اعمال کرد ؟

TeacherMath
جمعه 21 آذر 1393, 16:18 عصر
بله. میشه اضافه کرد. کافیه. عناصر کلاس id داشته باشن.


<table>
<thead>
<tr>
@foreach (var item in MvcApplication1.Models.PersonModels.getsCols())
{
<th>item.Name</th>
}
<td>ویرایش</td>
<td>حذف</td>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{ <tr>
<td>item.Name</td>
<td><a href="@Url.Action("Edit", new { ID = item.ID })">ویرایش</a></td>
<td><a href="@Url.Action("Delte", new { ID = item.ID })">حذف</a></td>
</tr>
}
</tbody>


</table>