这个代码(或项目)是如何工作的?(可编辑的ASP Gridview)
本文关键字:工作 编辑 Gridview ASP 代码 项目 何工作 | 更新日期: 2023-09-27 18:16:15
我是ASP新手。. NET,我会使用c#在asp.net中编辑gridview,我在codeproject中发现了这个可编辑的gridview(数据库,项目),但我没有意识到如何它的工作特别是这部分代码:'
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView drv = e.Row.DataItem as DataRowView;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if ((e.Row.RowState & DataControlRowState.Edit) > 0)
{
DropDownList dp= (DropDownList )e.Row .FindControl ("DropDownList1");
DataTable dt = load_department();
for (int i = 0; i < dt.Rows.Count; i++)
{
ListItem lt = new ListItem();
lt.Text = dt.Rows[i][0].ToString();
dp.Items.Add(lt);
}
dp.SelectedValue = drv[3].ToString();
RadioButtonList rbtnl = (RadioButtonList)e.Row.FindControl("RadioButtonList1");
rbtnl.SelectedValue = drv[5].ToString();
CheckBoxList chkb = (CheckBoxList)e.Row.FindControl("CheckBoxList2");
chkb.SelectedValue = drv[6].ToString();
}
}
}
'她/他为什么要这么做?
RowDataBound事件在您将网格绑定到数据源(例如,数据表)时触发。
对于数据表中的每一行,该代码将运行,并且将根据该行中的值在网格视图的每一列中放置一个值。
FindControl用于在网格视图的那一行中查找具有特定名称的控件——请记住,对于您拥有的行数,它将重复多次。
一旦找到控件,就设置该值。
您正在为数据源中的每一行数据有效地设置网格视图的每一行。
请查看http://msdn.microsoft.com/en-us/magazine/cc163933.aspx,了解此控件背后的意图。
** RowDataBound当数据行绑定到GridView控件中的数据时发生。
**DataControlRowState指定数据控件中某一行的状态。编辑、插入、选择等
** RowState获取该行与DataRowCollection的关系的当前状态。
现在在if condition
中,你的下拉框(DropDownList1)被填充,RadioButton和checkbox正在设置他们的选择值