【发布时间】:2014-04-07 03:21:30
【问题描述】:
我正在做一个项目。我有一个网格视图,其中一列有复选框。现在我想用数据填充我的网格视图,并根据我的状态字段相应地选中/取消选中复选框。直到现在我在 gridview 行中处理它数据绑定事件。但我只想知道在绑定源时有什么方法可以标记复选框。
我正在执行的查询以获取 gridview 中的数据
select s.studentcode,s.studentname,r.status from tblstudent s join tblresults r on s.studentcode=r.studentcode
我得到的输出
现在我希望如果我的状态是“提升”复选框被选中,如果它是“未提升”复选框被取消选中。我不想使用行数据绑定方法。只想在下面的行中完成我的工作
sql = "select s.studentcode,s.studentname,r.status from tblstudent s join tblresults r on s.studentcode=r.studentcode";
ds = obj.openDataset(sql, Session["SchoolCode"].ToString());
if (ds.Tables[0].Rows.Count > 0)
{
grdstudents.DataSource = ds;
grdstudents.DataBind();
grdstudents.Visible = true;
}
else
{
alertdiv.Visible = true;
lblalertmsg.Visible = true;
btnclose.Visible = true;
lblalertmsg.Text = "No Record found";
}
解决方案
查询
select s.studentcode,s.studentname,if(r.status='Promoted',true,false) as status from tblstudent s left join tblresults r on s.studentcode=r.studentcode where s.classcode='10000'
grdstudents.DataSource = ds;// note we binded to final table
grdstudents.DataBind();
gridview 内 aspx 页面中的复选框字段:
<ItemTemplate>
<asp:CheckBox ID="chkapply" runat="server" Checked='<%# Convert.ToBoolean(Eval("status"))%>'/>
</ItemTemplate>
此解决方案将帮助您避免在使用 gridview 的 itembinding 或 row 数据绑定事件时编写额外的代码
【问题讨论】: