2016-11-25 13 views
0

私はREADONLYをBoundsfieldを使用してテキストボックスに入力します。これまでのところ有効に働くが、それは動作しないコードの下編集モードでBoundFieldを使用してgridviewのテキストボックスに "Readonly"を適用する方法

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     var nopoject = ddlproject.SelectedValue.ToString(); 
     Int32 curntMonth = Convert.ToInt32(DateTime.Now.ToString("MM")); 
     int Mont1 = curntMonth - 1; 
     var Comtext = "Rst" + Mont1.ToString(); 
     GridView1.EditIndex = e.NewEditIndex; 
     BindData(); 

     foreach (GridViewRow row in GridView1.Rows) 
     {    
      for (int i = 0; i < GridView1.Columns.Count; i++) 
      { 
       String headertext = GridView1.Columns[i].HeaderText; 
       String cellText = row.Cells[i].Text; 

       if (Comtext == "Rst1") 
       { 
        GridView1.Rows[e.NewEditIndex].Cells[i].Enabled = true;       
       }}} 

をのRowUpdatingに値を運ぶされていません。

GridView1.Rows[e.NewEditIndex].Cells[i].Attributes.Add("readonly", "readonly"); 
GridView1.Rows[e.NewEditIndex].Cells[i].CssClass = "read-only"; 

お知らせください。私は、インライン編集 は、以下のように行編集イベントで読み取り専用あなたは

答えて

1

このスニペットを使用できます。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     if ((e.Row.RowState & DataControlRowState.Edit) > 0) 
     { 
      TextBox textBox = e.Row.Cells[0].Controls[0] as TextBox; 
      textBox.Enabled = false; 
     } 
    } 
} 
1
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowState == DataControlRowState.Edit || e.Row.RowState == DataControlRowState.Alternate) 
     { 
     //on you condition 
     TextBox txt = (TextBox)e.Row.FindControl("ControlID"); 
     if(txt !=null) 
     { 
      txt.Attributes.Add("readonly", "readonly");   

     } 
     } 
    } 

ます。また、テキストボックスを作ることができますありがとうございprogramicallyときboundsfield上読み取り専用をしたいです。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
     var nopoject = ddlproject.SelectedValue.ToString(); 
     Int32 curntMonth = Convert.ToInt32(DateTime.Now.ToString("MM")); 
     int Mont1 = curntMonth - 1; 
     var Comtext = "Rst" + Mont1.ToString(); 
     GridView1.EditIndex = e.NewEditIndex; 
     BindData(); 

     foreach (GridViewRow row in GridView1.Rows) 
     {    
      for (int i = 0; i < GridView1.Columns.Count; i++) 
      { 
       String headertext = GridView1.Columns[i].HeaderText; 
       String cellText = row.Cells[i].Text; 

       if (Comtext == "Rst1") 
       { 
        //GridView1.Rows[e.NewEditIndex].Cells[i].Enabled = true;       
        TextBox tx_chdets = (TextBox)GridView1.Rows[e.NewEditIndex].FindControl(“TextBox1”); 
        if(tx_chdets!=null) 
        { 
         tx_chdets.Readonly=true; 
        } 
       } 
      } 
     } 
    } 
+0

私はRowEditingのみが必要です。 – user3538475

+0

@ user3538475 - 更新されたコードをPlsレビューする – jignesh

+0

遅く返事を申し訳ありません... .FindControl( "TextBox1")=ループで探す方法は? – user3538475

関連する問題