إنشاء أزرار حذف / تحرير لسجلات Muliple من LinQ باستخدام قيمة مخفية؟
-
18-09-2019 - |
سؤال
نموذج ASPX:
<asp:Table ID="viewV" runat="server">
<asp:TableRow>
<asp:TableHeaderCell>Name</asp:TableHeaderCell>
<asp:TableHeaderCell>Type</asp:TableHeaderCell>
</asp:TableRow>
</asp:Table>
الرمز أدناه:
vRepository getV = new vRepository();
var viewAllV = getV.GetV();
foreach (tblV singleV in viewAllV)
{
TableRow tr = new TableRow();
// Create four new cells for each row within the database
TableCell vName = new TableCell();
TableCell vType = new TableCell();
// Attached values to each of these cells
vName.Text = singleV.vName;
vType.Text = singleV.tblVType.vName;
// Add the cells to the table
tr.Cells.Add(vName);
tr.Cells.Add(vType);
// Add the row to the table
viewV.Rows.Add(tr);
}
أنا حاليا ملء ASP: الجدول باستخدام LinQ، وهذا يعمل بشكل جيد.
public IQueryable<tblV> GetV()
{
return (from getAllV in dc.tblV
where getAllV.deleted != 1
orderby getAllV.vName
select getAllV).DefaultIfEmpty();
}
لقد جربت GridView / ListViewViewView ولكن لا يبدو أن الوصول إلى GetV، يمكنني الوصول إلى الجدول الفعلي فقط.
أريد إضافة زر تحرير / حذف إلى نهاية كل صف، بحيث يمكن للمستخدم تحديد الصف الذي يرغبون في تحريره / حذفه.
بمجرد تحديد المستخدم إما الزر "تحرير / حذف"، يجب بعد ذلك الوصول إلى طريقة عرض مختلفة (واحدة للتحرير، واحد للإضافة - في نفس ملف ASPX).
علي سبيل المثال:
Name Type
Example 1 Type 1 Edit Button Delete Button
Example 2 Type 1 Edit Button Delete Button
أريد أن أكون قادرا على تحديد زر التحرير ل "مثال 1". هذا ينبغي بعد ذلك:
- خذني إلى "تحرير العرض"،
- التلقائي ملء الحقول النصين مع المعلومات الصحيحة،
- تحديث الصف (داخل قاعدة البيانات) مع معلومات جديدة باستخدام معرف فريد (PK).
كيف وصلتني إنتاج أزرار تحرير / حذف متعددة والتي تحمل معرف فريد من نوعه لهذا الصف؟
اعتقدت أنه سيكون شيئا مثل هذا:
TableCell vEdit = new TableCell();
vEdit.Button = singleV.vID;
tr.Cells.Add(vEdit);
المحلول
إذا كنت تريد حقا "التعادل"، استخدم ASP.NET MVC. خلاف ذلك، يجب عليك حقا استخدام نوع من التحكم في البيانات.
ومع ذلك، إذا أصرت على هذا النهج، فمن المحتمل أن تفعل شيئا مثل هذا:
Button editButton = new Button();
editButton.Text = "Edit";
editButton.CommandArgument = singleV.vID.ToString();
editButton.CommandName = "Edit";
editButton.OnCommand += new CommandEventHandler(EditButton_Command);
TableCell vEdit = new TableCell();
vEdit.Controls.Add(editButton);
tr.Cells.Add(vEdit);
ثم من معالج الحدث الخاص بك commandeventargs. يمكنك استرداد الحجة وتغيير عرضك وفقا لذلك.