2011-05-27 60 views
0

嗨我是新的使用telerik rad控制asp开发,我需要一些帮助。我有一个radGrid,当按下按钮时会填充数据,我在论坛中找到了一个解决方案,用于选择一行radGrid并获取每个单元格的值,但现在我想知道如何将这些值保存到我的数据库使用实体框架。我一直在尝试将值放入字符串,然后在我的保存方法中调用字符串,但是当我执行程序时,我添加了两个断点,一个放在选择行的方法中,并将值和其他值保存方法,当看到第一个方法中的断点结果时,它将选中的行的值作为每个字符串包含与radGrid中的单元格对应的数据,但在我的保存方法中字符串显示为空,如何解决此问题问题? 希望你能帮助我。 这里是我的两种方法来选择和保存将数据从telerik radgrid保存到数据库

protected void RgSolic_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (GridDataItem selectedItem in rgSolic.SelectedItems) 
     { 
      strNom = selectedItem["NombreCompleto"].Text; 
      strPuesto = selectedItem["nom_pue"].Text; 
      strCveAdscripcion = selectedItem["cve_adscripcion"].Text; 
      strArea = selectedItem["nom_area"].Text; 

     } 
    } 
    protected void btnRegistra_Click(object sender, EventArgs e) 
    { 
     //BD_SSEGUAEntities sseguaRegistro = new BD_SSEGUAEntities(); 
     //sseguaRegistro.spRegistraSolicitud1(); 
     //Valida Datos del Menor 
     using (var dbContext = new BD_SSEGUAEntities()) 
     { 
      var ResultSet = new Menor(); 
      var ResultSol = new Solicitud(); 
      var ResulBitacora = new Bitacora(); 
      if (chkMasc.Checked) 
      { 
       sexo = "M"; 
      } 
      if (chkFem.Checked) 
      { 
       sexo = "F"; 
      } 
      if (rdTxtAPatMen.Text != "" && rdTxtAMatMen.Text != "" && rdTxtNomMen.Text != "" && RadDatePicker1.SelectedDate != null && sexo != "" && rdCmbEdificio.SelectedValue != "" && rdTxtDomicilio.Text != "" && rdTxtHEnt.Text != "" && rdTxtHSal.Text != "" && rdTxtTelOfic.Text != "" && rdTxtExt.Text != "" && rdTxtPart.Text != "" && rdTxtCorreoE.Text != "" && rdTxtDomPart.Text != "" && rdTxtNHijos.Text != "" && rdCmbTEmbzo.SelectedValue != "0") 
      { 
       try 
       { 

        System.DateTime.Now.Year.ToString(); 
        //ResultSol.fcCvePuesto = rgSolic.Columns.FindByUniqueName("nom_pue").ToString(); 
        //ResultSol.fcCveAdsc = rgSolic.Columns.FindByDataField("cve_adscripcion").ToString(); 
        ResultSol.fcNomEmpleado = strNom; 

          ResultSol.fcCveAdsc = strCveAdscripcion; 

        ResultSol.fcCvePuesto = strPuesto; 
        ResultSol.fcDomLabora = rdTxtDomicilio.Text; 
        ResultSol.fiHorEntLab = (Byte)rdTxtHEnt.Value; 
        ResultSol.fiHorSalLab = (Byte)rdTxtHSal.Value; 
        ResultSol.fiTelOfna = rdTxtTelOfic.Text; 
        ResultSol.fiExtTel = rdTxtExt.Text; 
        ResultSol.fiTelPart = rdTxtPart.Text; 
        ResultSol.fcCorreoE = rdTxtCorreoE.Text; 
        ResultSol.fcDomPart = rdTxtDomPart.Text; 
        ResultSol.fiNumHijos = (Byte)rdTxtNHijos.Value; 

        foreach (var menor in listaMenores) 
        { 
         ResultSol.Menor.Add(menor); 
        } 
        dbContext.AddToSolicitud(ResultSol); 
        dbContext.SaveChanges(); 
        //ResultSet.fcPatMenor = rdTxtAPatMen.Text; 
        //ResultSet.fcMatMenor = rdTxtAMatMen.Text; 
        //ResultSet.fcNomMenor = rdTxtNomMen.Text; 
        //ResultSet.fdFchNacMenor = (DateTime)RadDatePicker1.SelectedDate; 
        //ResultSet.fiAnosMenor = (Byte)rdTxtAnio.Value; 
        //ResultSet.fiMesesMenor = (Byte)rdTxtMeses.Value; 
        //ResultSet.fiSexoMenor = sexo; 
        //ResultSet.fdFchRegMenor = DateTime.Today; 
        //dbContext.Menores.AddObject(ResultSet); 
        //dbContext.SaveChanges(); 
        //RgMenor.DataSource = ResultSet; 
        //RgMenor.Rebind(); 
       } 
       catch (Exception ex) 
       { 
        Alerta(ex.Message); 
       } 
      } 
      else 
      { 
       Alerta("Captura todos lo datos del Menor"); 
      } 
     } 
    } 

回答

0

代码不包括有关如何部分参考网格项目中的文本框(rdTxtXXXXX)。有两个选项,取决于它们是编辑行内的文本框还是模板列的项目模板(分别):

//inside the button click handler, textboxes in edited rows 
//have in mind the detail about the edited items from [this doc][1] 
foreach(GridEditableItem editedItem in rgSolic.EditItems) 
{ 
    TextBox txtBox = editedItem.FindControl("rdTxtDomicilio") as TextBox; 
    //retrieve the text here 
    ............................................... 
} 

//inside the button click handler, textboxes in template columns' item templates 
foreach(GridDataItem dataItem in rgSolic.MasterTableView.Items) 
{ 
    TextBox txtBox = dataItem.FindControl("rdTxtDomicilio") as TextBox; 
    //retrieve the text here 
    ............................................... 
}