.NET经验心得探讨社区  
请在这里用键盘敲打出属于你的地位!

例如:当某用户登陆注册页时读取该用户注册时填写的注册信息!
(将整个页面以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();
                }
            }
        }

posted on 2006-03-15 09:59  苦涩的咖啡  阅读(395)  评论(0编辑  收藏  举报