في asp.net 2.0، يمكنك دمج قائمة منسدلة في طريقة عرض الشبكة، وهذا أمر سهل للغاية، وما نتحدث عنه هنا هو،
في كل قائمة منسدلة، يتم ربط محتوى مختلف. على سبيل المثال، في قاعدة بيانات northwind، يمكنك استخدام GRIDVIEW لعرض كل فئة. وفي الوقت نفسه، يمكن إدراج الفئة في كل صف في شكل مربع منسدل للقائمة المنسدلة. يتم تقديم جميع المنتجات ضمن طريقة التنفيذ أدناه.
الأول هو الكود الموجود في جزء الصفحة.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound">
<أعمدة>
<asp:BoundField DataField = "CategoryID" HeaderText = "CategoryID" />
<asp: BoundField DataField = "CategoryName" HeaderText = "اسم الفئة" />
<asp:TemplateField HeaderText = "المنتجات">
<ItemTemplate>
< asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
في قسم codebehind،
Page_Load باطلة محمية (مرسل الكائن، EventArgs e)
{
إذا (!Page.IsPostBack)
{
// هذا لأن الجدول[1] يحتوي على الفئات
GridView1.DataSource = GetDataSet().Tables[1
]
;
}
مجموعة البيانات الخاصة GetDataSet()
{
استعلام السلسلة = @"SELECT p.CategoryID,p.ProductID, p.ProductName FROM Products p
SELECT c.CategoryID,c.CategoryName FROM Categories c"
; ;كلمة المرور=123456";
SqlConnection myConnection = new SqlConnection(connectionString);
SqlDataAdapter ad = new SqlDataAdapter(query, myConnection);
DataSet ds = new DataSet();
ad.Fill(ds);
return ds;
}
في الكود أعلاه، نقوم أولاً بإرجاع مجموعة بيانات نموذجية وربطها بعرض الشبكة. لاحظ أن هناك جملتين في عبارة SQL. الجملة الأولى هي إرجاع المنتج، والجملة الثانية هي إرجاع جميع الفئات ملزمة عند استخدام طريقة عرض الشبكة، نستخدم
GridView1.DataSource = GetDataSet().Tables[1];، قم بربط سجل الفئة في جدول الجدول الأول بعرض الشبكة. بعد ذلك، يتعين علينا معالجة القائمة المنسدلة في عمود القالب. يمكن القيام بذلك في حدث Row_databound الكود على النحو التالي
GridView1_RowDataBound (مرسل الكائن، GridViewRowEventArgs e) باطلة محمية
{
DataTable myTable = new DataTable();
new
DataColumn("ProductID"); DataColumn ProductNameColumn
=
new DataColumn("ProductName"
);
= new DataSet();
ds = GetDataSet();
int classID =
0
;
{
categoryID = Int32.Parse(e.Row.Cells[0].Text);
Expression = "CategoryID = " + CategoryID;
DropDownListddl
= (DropDownList)e.Row.FindControl("DropDownList1");
ds.Tables[0].Select(expression);
foreach (صف DataRow في الصفوف)
{
DataRow newRow = myTable.NewRow();
newRow["ProductID"] = صف["ProductID"];
newRow
[
"ProductName"] = صف["ProductName"]
;
DataSource = myTable;
ddl.DataTextField
=
"ProductName
"
;
المبدأ هنا تقريبًا كما يلي:
أولاً، قمنا بإنشاء جدول بيانات، بما في ذلك أعمدة معرف المنتج واسم المنتج، ثم ربطناه بعرض الشبكة، ثم استخدمناه
(
e.Row.Cells[0].Text);
أنشئ تعبير عامل تصفية، محددًا هنا كمعرف الفئة، ثم قم بتمريره
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
DataRow[]rows = ds.Tables[0].Select(expression);
، ابحث عن جميع المنتجات التي تساوي فئتها معرف فئة معينًا، وأخيرًا، يتم إنشاء مجموعة بيانات
وأضف جميع المنتجات ضمن فئة معينة إلى جدول البيانات، وأخيرًا اربط جدول البيانات والقائمة المنسدلة لتحقيق الوظيفة.