protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (((DropDownList)e.Row.FindControl("ddlPower")) != null)
{
DropDownList ddlpower = (DropDownList)e.Row.FindControl("ddlPower"); // 生成 DropDownList 的值,绑定数据
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(connStr);
if (conn.State.ToString() == "Closed") conn.Open();
SqlDataAdapter da = new SqlDataAdapter("Proc_PowerList", conn);
da.Fill(ds);
if (conn.State.ToString() == "Open") conn.Close(); ddlpower.DataSource = ds.Tables[0].DefaultView;
ddlpower.DataTextField = "Name";
ddlpower.DataValueField = "ID";
ddlpower.DataBind();
ddlpower.SelectedItem.Text = ((HiddenField)e.Row.FindControl("hdfPower")).Value;
} }以上是GridView的 rowdatabound事件
我不懂的是
1:rowdatabound事件 是做什么的,有什么用?
2:if (((DropDownList)e.Row.FindControl("ddlPower")) != null)
这句判断是什么意思?
3:e.Row.FindControl 的用法
{
if (((DropDownList)e.Row.FindControl("ddlPower")) != null)
{
DropDownList ddlpower = (DropDownList)e.Row.FindControl("ddlPower"); // 生成 DropDownList 的值,绑定数据
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(connStr);
if (conn.State.ToString() == "Closed") conn.Open();
SqlDataAdapter da = new SqlDataAdapter("Proc_PowerList", conn);
da.Fill(ds);
if (conn.State.ToString() == "Open") conn.Close(); ddlpower.DataSource = ds.Tables[0].DefaultView;
ddlpower.DataTextField = "Name";
ddlpower.DataValueField = "ID";
ddlpower.DataBind();
ddlpower.SelectedItem.Text = ((HiddenField)e.Row.FindControl("hdfPower")).Value;
} }以上是GridView的 rowdatabound事件
我不懂的是
1:rowdatabound事件 是做什么的,有什么用?
2:if (((DropDownList)e.Row.FindControl("ddlPower")) != null)
这句判断是什么意思?
3:e.Row.FindControl 的用法
你跟踪一下就知道了
2,e.Row 因为每执行一次是一行 所以 e.Row是当前行的意思 , findcontrol是找控件的方法,但是是CONTROL类型的 把它强制转换成正确的类型 ,然后才能使用该类型的方法 比如.TEXT
3.findcontrol 是一个方法 e.Row只不过是确定什么对象调用的这个方法。
我说的已经很幼稚了 不知道楼主能看懂么
2.当ddlPower控件可以找到时
3.MSDN