لدي قاعدة بيانات تحوي مجموعات وبكل مجموعه عدد من الطلبه لكل مدرس (أي المدرس يكون له أكثر من مجموعه –عدد لا نهائي-).
وماأردت هو عندما يفتح الدكتور صفحته يعرض له كل مجموعه بما فيها من طلبه في dataGrid جديد (أي عدد الDataGrid=عدد المجموعت)
بحيث يمكن للمدرس أو الدكتور إختيار مجموعه واحده فقط بإستخدام Button في الDataGrid وواجهت مشكلتان:
1) كيف لي أن أضع Column Button بحيث يحوي Button واحد فقط لل DataGrid بأكمله (أي يكون بال Button Column Button واحد فقط لكل الصفوف في ال DataGrid)
2) بما أن ال DataGrid (والذي يكون بعدد المجموعات) يتم إنشاءه في الRun time وليس في ال Design time فكيف لي أن أستخدم أي Eventsفكيف لي أن أستخدم Event لل Button أو ItemDataBound Event
وهذا هو الكود المستخدم إلى الآن
(ملاحظة: لم أضف Button Column بعد)
private System.Data.Odbc.OdbcConnection con;
private System.Data.Odbc.OdbcCommand com;
private System.Data.Odbc.OdbcDataReader read;
private String str;
strCon="DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;PORT=3306;DATABASE=test;UID=root;PWD=root;OPTION=3";
con= new System.Data.Odbc.OdbcConnection(strCon);
con.Open();
com= new System.Data.Odbc.OdbcCommand("SELECT count(distinct r.group_no) FROM test.reg_groups r WHERE r.dr_id="+Session["id"].ToString(),con);
\\ لإيجاد عدد المجموعات لدكتور معين
read= com.ExecuteReader();
if(read.Read())
{
str=read[0].ToString();
}
if(Int32.Parse(str)>0) \\ إذا كان هناك مجموعات
{
for (int i=1; i<=Int32.Parse(str); i++) \\ بعدد المجموعات
{
com= new System.Data.Odbc.OdbcCommand("SELECT * FROM test.reg_groups r WHERE r.dr_id="+Session["id"].ToString()+" AND r.group_no="+i.ToString(),con);
\\ السيشن تحوي رقم الدكتور أو المدرس
read= com.ExecuteReader();
System.Web.UI.WebControls.DataGrid DataGrid2=new System.Web.UI.WebControls.DataGrid(); \\ إنشاء داتا جرد لكل مجموعه
DataGrid2.AutoGenerateColumns=false;
DataGrid2.ForeColor=Color.DarkBlue;
DataGrid2.HeaderStyle.BackColor=Color.Maroon;
DataGrid2.HeaderStyle.ForeColor=Color.LightGoldenrodYellow;
DataGrid2.HeaderStyle.Font.Bold=true;
System.Web.UI.WebControls.BoundColumn bc1=new System.Web.UI.WebControls.BoundColumn();
System.Web.UI.WebControls.BoundColumn bc2=new System.Web.UI.WebControls.BoundColumn();
System.Web.UI.WebControls.BoundColumn bc3=new System.Web.UI.WebControls.BoundColumn();
System.Web.UI.WebControls.BoundColumn bc4=new System.Web.UI.WebControls.BoundColumn();
System.Web.UI.WebControls.BoundColumn bc5=new System.Web.UI.WebControls.BoundColumn();
bc1.HeaderText="Group Nuber";
bc1.DataField="group_no";
bc2.HeaderText="Student Id";
bc2.DataField="std_id";
bc3.HeaderText="Student Name";
bc3.DataField="std_name";
bc4.HeaderText="Project Subject";
bc4.DataField="proj_subject";
bc5.HeaderText="Project Describtion";
bc5.DataField="proj_describtion";
DataGrid2.Columns.Add(bc1);
DataGrid2.Columns.Add(bc2);
DataGrid2.Columns.Add(bc3);
DataGrid2.Columns.Add(bc4);
DataGrid2.Columns.Add(bc5);
DataGrid2.DataSource=read;
DataGrid2.DataBind();
this.Controls.Add(DataGrid2);
read.Close();
}
}
else
{
Label1.Text="No Groupes are registered";
}