因看不懂,请教一段程序?

zjhzzc001 2007-03-15 11:40:19
protected void gv_Privilege_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
if (drv == null)
{
return;
}
for (int i = 0; i < drv.DataView.Table.Columns.Count; i++)
{
if (drv.DataView.Table.Columns[i].ColumnName != "资源名称")
{
//问题一?
CheckBox chk = (CheckBox)e.Row.Cells[i].Controls[0];
if (Convert.ToBoolean(drv[drv.DataView.Table.Columns[i].ColumnName].ToString()))
{


string roleId = lbl_GroupName.Attributes["RoleId"].ToString();
string privilegeId = new SMS_Privilege().GetPrivilegeId(drv[0].ToString(), drv.DataView.Table.Columns[i].ColumnName);
//问题二
drv[i] = SMS_PrivilegeInRoles.PrivilegeInRolesIsExists(new Guid(roleId), new Guid(privilegeId));

chk.Enabled = true;
}
else
{
chk.Visible = false; }
}

}
}

}

------------------------------------------------
问题一:CheckBox chk = (CheckBox)e.Row.Cells[i].Controls[0];
该语句是创建一个checkbox类型的chk呢,还是获得一个checkbox类型的chk
是不是cell可以转换成checkbox,还是cell中包含了controls是checkbox类类型的.

问题二:datarowview的drv[i]的赋值的作用?
drv[i]值是指什么?是列的名称吗?
为什么如果SMS_PrivilegeInRoles.PrivilegeInRolesIsExists(new Guid(roleId), new Guid(privilegeId));返回值是false的话.
则chk.Enabled = true;的执行效果无效,即chk.enabled属性超出if语句后又变成了false.
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
job_2006 2007-03-15
  • 打赏
  • 举报
回复
allen_cn(波波) ( ) 信誉:100 Blog 2007-03-15 11:45:11 得分: 0


drv[i],i是列的索引值


数据库里的,从0开始
chuxue1342 2007-03-15
  • 打赏
  • 举报
回复
只是申明一个变量!接分
daishengs 2007-03-15
  • 打赏
  • 举报
回复
CheckBox chk = (CheckBox)e.Row.Cells[i].Controls[0];

int i=100;
Session["mySession"]=i;
int j=(int)Session["mySession"];
是同样道理
在gv控件的当前行的i列里包含一个CheckBox时,此转换才能成功。
allen_cn 2007-03-15
  • 打赏
  • 举报
回复
drv[i],i是列的索引值
allen_cn 2007-03-15
  • 打赏
  • 举报
回复
问题一:CheckBox chk = (CheckBox)e.Row.Cells[i].Controls[0];

该语句是获得一个checkbox类型的chk,是cell中包含了CheckBox类型的一个对象
zjhzzc001 2007-03-15
  • 打赏
  • 举报
回复
第二个问题呢?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧