PDA

View Full Version : ساخت gridview پیشرفته



na3er-faraji
شنبه 17 تیر 1391, 13:49 عصر
دوستان آیا gridview و قسمت template field اون امکان ساخت فرمی مانند عکس زیر رو دارند. همون طور که در عکس می بینید یک سری یوالات سه سطحیه که باید به وسیله یه سری رادیو باتن که جلو هرکدوم هست کاربر جواب بده و من فرم رو پردازش کنم. اطلاعات سوالات هم از بانک خونده میشه. به نظر شما بهترین روش برای ساخت همچین فرمی چیه؟؟؟ اگه مثالی هست لطفا راهنمایی کنید؟

na3er-faraji
شنبه 17 تیر 1391, 17:21 عصر
من تونستم با کد زیر خودم جدولم رو دزست کنم اما حالا برای واکشی اطلاعات کسی از دوستان چیزی به نظرش نمیرسه؟

private void CreateTableAnswer(Guid periodId)
{
List<Guid> level1Id;
List<Guid> level2Id;
List<Guid> level3Id;

using (var db = new EvaluationEXEEntities())
{
level3Id = (from pq in db.Period_Questions
join p in db.Periods on pq.PRD_UID equals p.PRD_UID
join qus in db.Questions on pq.QUS_UID equals qus.QUS_UID
where pq.PRD_UID == periodId
select qus.QUS_UID).Distinct().ToList();

level2Id = (from p in db.Periods
join pq in db.Period_Questions on p.PRD_UID equals pq.PRD_UID
join qus in db.Questions on pq.QUS_UID equals qus.QUS_UID
where pq.PRD_UID == periodId
select qus.QUS_PARENT.Value).Distinct().ToList();

level1Id = (from qus in db.Questions
where level2Id.Contains(qus.QUS_UID)
select qus.QUS_PARENT.Value).Distinct().ToList();

//level1Id = (from qus in db.Questions
// where level2Id.Contains(qus.QUS_PARENT.Value)
// select qus.QUS_UID).ToList();


string html = "<center>";

var queryLevel1 = from qus in db.Questions
where level1Id.Contains(qus.QUS_UID)
select qus;
int radioNumber = 1;
foreach (var item1 in queryLevel1)
{
html += "<table border='1px' class='tblQuestion'><tr><td rowspan=2 class='tblQuestionCell1'>";
html += item1.QUS_QUESTION;
html += "</td><td rowspan=2 class='tblQuestionCell2'>مصادیق و حدود انتظار</td><td class='tblQuestionCell3' colspan=4>نتایج عملکرد و ارزش عددی</td></tr>";
html += "<tr class='tblQuestionCell3'></td><td>عالی</td><td>خوب</td><td>متوسط</td><td>ضعیف</td></tr>";
var queryLevel2 = from qus in db.Questions
where level2Id.Contains(qus.QUS_UID) && qus.QUS_PARENT == item1.QUS_UID
select qus;


html += "<tr>";
foreach (var item2 in queryLevel2)
{

var queryLevel3 = from qus in db.Questions
where level3Id.Contains(qus.QUS_UID) && qus.QUS_PARENT == item2.QUS_UID
select qus;

html += "<td class='tblQuestionCell1' rowspan=" + queryLevel3.Count() + ">";
html += item2.QUS_QUESTION;
html += "</td>";



foreach (var item3 in queryLevel3)
{
html += "<td>";
html += item3.QUS_QUESTION;
html += "</td>";
html += "<td><input id='Radio1' name='R" + radioNumber + "' type='radio'/></td>";
html += "<td><input id='Radio1' name='R" + radioNumber + "' type='radio'/></td>";
html += "<td><input id='Radio1' name='R" + radioNumber + "' type='radio'/></td>";
html += "<td><input id='Radio1' name='R" + radioNumber + "' type='radio'/></td>";
html += "</tr>";
radioNumber++;
}

}
html += "</tr></table><br/>";
}
html += "</center>";
Literal1.Text = html;
}
}