2017-10-23 6 views
-1

일부 데이터가 포함 된 radGrid의 데이터를 SQL에 삽입하려고합니다. 내 방사선 그리드에서 나는 또한 체크 박스 열을 가지고 있으므로 체크 된 행을 내 DB에 삽입하고 싶습니다. 아래의 코드를 사용하고 있지만이 오류를 제공합니다. 오류 30 'Telerik.Web.UI.RadGrid'에는 '행'에 대한 정의가없고 'Telerik'유형의 첫 번째 인수를 허용하는 확장 메서드 '행'이 없습니다. Web.UI.RadGrid '찾을 수 있습니다 (사용 지시문 또는 어셈블리 참조가 누락되었습니다?) 내가 잘못하고있는 어떤 생각 ??? RadGrid에서 sql에 데이터를 삽입하여 확인란을 선택하십시오.

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      this.BindGrid(); 
     } 
    } 

    private void BindGrid() 
    { 
     string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(constr)) 
     { 
      using (SqlCommand cmd = new SqlCommand("SELECT [ReportId], [Report], [IsSelected] FROM Hobbies")) 
      { 
       using (SqlDataAdapter sda = new SqlDataAdapter()) 
       { 
        cmd.Connection = con; 
        sda.SelectCommand = cmd; 
        using (DataTable dt = new DataTable()) 
        { 
         sda.Fill(dt); 
         RadGrid1.DataSource = dt; 
         RadGrid1.DataBind(); 
        } 
       } 
      } 
     } 
    } 

    protected void Rows() 
    { 

    } 

는 DataItems 통해 루프 행 액세스 무효화 Save2_Click (객체 송신자있는 EventArgs E) {

  try 
      { 

       SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Rights"].ConnectionString); 

       string insert = "insert into Rights(Name,Mbiemri,Gjinia,Departamenti,Mosha,IntRights,Transferta,Depozita,Rapore) values (@Name,@Mbiemri,@Gjinia,@Departamenti,@Mosha,@IntRights,@Transferta,@Depozita,@Rapore)"; 
       SqlCommand cnd = new SqlCommand(insert, con); 
       con.Open(); 
       foreach (GridViewRow row in RadGrid1.Rows) 
       { 
        //Get the HobbyId from the DataKey property. 
        int ReportID = Convert.ToInt32(GridView1.DataKeys[row.RowIndex].Values[0]); 

        //Get the checked value of the CheckBox. 
        bool isSelected = (row.FindControl("chkSelect") as CheckBox).Checked; 

        //Save to database 
        cmd.Parameters.Clear(); 
        cmd.Parameters.AddWithValue("@ReportId", ReportID); 
        cmd.Parameters.AddWithValue("@IsSelected", isSelected); 
        cmd.ExecuteNonQuery(); 
       } 
       cnd.Parameters.AddWithValue("@Name", TextBox1.Text); 
       cnd.Parameters.AddWithValue("@Mbiemri", TextBox2.Text); 
       cnd.Parameters.AddWithValue("@Gjinia", RadioButtonList1.SelectedValue); 
       cnd.Parameters.AddWithValue("@Departamenti", SelectDepartament.SelectedItem.Text); 
       cnd.Parameters.AddWithValue("@Mosha", RadDropDownList1.SelectedItem.Text); 
       cnd.Parameters.AddWithValue("@IntRights", RadDropDownList2.SelectedItem.Text); 
       cnd.Parameters.AddWithValue("@Transferta", TransfertaBtn.SelectedValue); 
       cnd.Parameters.AddWithValue("@Depozita", DepoziteBtn.SelectedValue); 


       cnd.ExecuteNonQuery(); 

       Response.Redirect("Home.aspx"); 

       con.Close(); 

      } 

      catch (Exception ex) 
      { 


      } 


telerik:RadGrid ID="RadGrid1" 
         runat="server" AllowMultiRowSelection="True" AllowPaging="True" DataSourceID="SqlDataSource1" GridLines="Both" PageSize="5" > 
         <GroupingSettings CollapseAllTooltip="Collapse all groups" /> 
         <ClientSettings> 
          <Selecting AllowRowSelect="True" /> 
         </ClientSettings> 
         <MasterTableView> 
          <Columns> 
           <asp:TemplateField> 
           <ItemTemplate> 
            <asp:CheckBox ID="chkSelect" runat="server" Checked='<%# Eval("IsSelected") %>' /> 
           </ItemTemplate> 
            </asp:TemplateField> 
           <asp:BoundField DataField="Report" HeaderText="Report" ItemStyle-Width="150px" /> 

           </telerik:GridTemplateColumn> 
          </Columns> 
         </MasterTableView> 
        </telerik:RadGrid> 

        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
         ConnectionString="<%$ ConnectionStrings:AdventureWorks2014ConnectionString %>" SelectCommand="SELECT [ReportID], [Report] FROM [Report]"></asp:SqlDataSource> 
        <br /> 
+1

[오류 탐색] (https://www.telerik.com/forums/radgrid-definition-for-quotrows-quot)을 시도하지 않았습니다. – Reniuz

+0

나는 그랬지만 결과는 없었다. 어쨌든 고마워. – Lara

답변

0

보호. 더 Accessing Cells and Rows에 대한

protected void Button1_Click(object sender, EventArgs e) 
{ 
    foreach (GridDataItem row in RadGrid1.Items) 
    { 
     string rowValue = row["ColumnUniqueName"].Text; 
    } 
} 

더 나은 방법은 SQL 데이터베이스를 업데이트하는 몇 가지 매개 변수를 사용하는 방법을 생성하는 것입니다. 완료되면 RadGrid (Differences Between ItemCreated and ItemDataBound)의 ItemDataBound 이벤트에서 호출합니다. 이 이벤트에서 행과 셀에 액세스하고 필요한 값을 가져 와서 데이터베이스를 행 단위로 업데이트 할 수 있습니다.

bool IsClicked = false; 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    IsClicked = true; 
    RadGrid1.Rebind(); 
} 

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (IsClicked && e.Item is GridDataItem) 
    { 
     updateDatabase(((GridDataItem)e.Item)["ColumnUniqueName"].Text); 
    } 
} 

protected void updateDatabase(string field) 
{ 
    // update SQL 
}