例如:当某用户登陆注册页时读取该用户注册时填写的注册信息!
(将整个页面以cm.ShowData(this.FindControl("Form1").Controls, 带有数据的DataRow);进行提交)
public void ShowData(System.Web.UI.ControlCollection formControls,DataRow dr)
{
foreach (Control ctrl in formControls)
{
if((ctrl is HtmlInputText || ctrl is TextBox) && ctrl.ID.IndexOf("tx_")==0 && dr.Table.Columns.Contains(ctrl.ID.Substring(5)))
{
if(ctrl is HtmlInputText )
((HtmlInputText)ctrl).Value = dr[ctrl.ID.Substring(5)].ToString();
else
((TextBox)ctrl).Text = dr[ctrl.ID.Substring(5)].ToString();
}
else if( ctrl is DropDownList && ctrl.ID.IndexOf("ddl_")==0 && dr.Table.Columns.Contains(ctrl.ID.Substring(6)) && dr[ctrl.ID.Substring(6)].ToString()!="")
{
// HttpContext.Current.Response.Write("<br>"+ctrl.ID + ":"+((DropDownList)(ctrl)).DataValueField + ","+ ((DropDownList)(ctrl)).DataTextField );
string fieldName = ctrl.ID.Substring(6);
if(((DropDownList)(ctrl)).Items.Count>0)
{
try
{
if(((DropDownList)(ctrl)).Items.FindByValue(dr[fieldName].ToString().Trim())!=null)
((DropDownList)(ctrl)).SelectedValue = dr[fieldName].ToString().Trim();
else
AddItem((DropDownList)ctrl,dr);
}
catch
{
AddItem((DropDownList)ctrl,dr);
// HttpContext.Current.Response.Write("<script>alert('" + ex .Message +"')</script>");
}
}
else
AddItem((DropDownList)ctrl,dr);
}
else if(ctrl is Label && ctrl.ID.IndexOf("lb_")==0 && dr.Table.Columns.Contains(ctrl.ID.Substring(5)))
{
((Label)ctrl).Text = dr[ctrl.ID.Substring(5)].ToString();
}
}
}
另外一种将DataReader当做数据源:
public void ShowData(System.Web.UI.ControlCollection formControls, SqlDataReader myReader)
{
DataTable dt = new DataTable();
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
for(int i = 0; i < myReader.FieldCount; i ++)
{
dt.Columns.Add(myReader.GetName(i));
dr[i] = myReader[i].ToString();
}
foreach (Control ctrl in formControls)
{
if((ctrl is HtmlInputText) && ctrl.ID.IndexOf("tx_")==0 && dt.Columns.Contains(ctrl.ID.Substring(5)))
{
((HtmlInputText)ctrl).Value = dr[ctrl.ID.Substring(5)].ToString();
}
else if((ctrl is TextBox) && ctrl.ID.IndexOf("tx_")==0 && dt.Columns.Contains(ctrl.ID.Substring(5)))
{
((TextBox)ctrl).Text = dr[ctrl.ID.Substring(5)].ToString();
}
else if(ctrl is DropDownList && ctrl.ID.IndexOf("ddl_")==0 && dt.Columns.Contains(ctrl.ID.Substring(6)) && dr[ctrl.ID.Substring(6)].ToString()!="")
{
string fieldName = ctrl.ID.Substring(6);
DropDownList ddl = (DropDownList)ctrl;
if(((DropDownList)(ctrl)).Items.FindByValue(dr[fieldName].ToString().Trim()) == null)
{
AddItem((DropDownList)ctrl,dr);
}
((DropDownList)(ctrl)).SelectedValue = dr[fieldName].ToString().Trim();
}
else if(ctrl is Label && ctrl.ID.IndexOf("lb_")==0 && dt.Columns.Contains(ctrl.ID.Substring(5)))
{
((Label)ctrl).Text = dr[ctrl.ID.Substring(5)].ToString();
}
}
}