2017-03-29 6 views
0

データソースにバインドされたグリッドビューを持っています。Gridview、自動生成列、チェックボックス列編集可能

<asp:GridView ID="DocumentReviewGrid" runat="server" AllowPaging="True" AllowSorting="True" 
        EnableModelValidation="True" Width="100%" BorderStyle="None" 
        CssClass="docnav_data" BorderWidth="1px" GridLines="None" DataSourceID="DocumentReviewDataSource" 
        HorizontalAlign="Left" OnRowDataBound="DocumentReviewGrid_RowDataBound" 
        OnRowCreated="DocumentReviewGrid_RowCreated" CellSpacing="5" 
        PageSize="20" OnPageIndexChanged="DocumentReviewGrid_PageIndexChanged"> 
        <AlternatingRowStyle BackColor="#EBF2F9" BorderStyle="None" /> 
        <FooterStyle HorizontalAlign="Left" /> 
        <HeaderStyle BackColor="#E7E7E7" HorizontalAlign="Left" /> 
        <PagerSettings Mode="NumericFirstLast" Position="Top" PageButtonCount="4" /> 
        <PagerStyle HorizontalAlign="Center" />      
       </asp:GridView> 

enter image description here

あなたが見ることができるように自動生成された列がtrueに設定されている、そしてそれはそのようにしておく必要があります。列の1つはSQLビット値なので、チェックボックスとして表されます。 "AutoGenerateEditButton"プロパティを使用せずに、チェックボックス列のみを編集できるようにしたいと思います。私はしたいと思います:

  • は、チェックボックスのチェックを外す/チェックでき(私はここで立ち往生しています)
  • 他の列を外部のボタンを使用して、単一の更新を実行する読み取り専用
でなければなりません
+1

私はきれいな方法を考えることができませんが、それを行うためのハックな回避策を知っています。しかし、最初に2つの質問があります。列の順序が常に同じであることに頼ることができますか?この編集可能な列が最初にグリッド内に表示されると問題になりますか? – Andrei

+0

私は列の順序に頼ることができますが、編集可能な列はむしろ列の中央にあります。最初の列が必要なソリューションがある場合は、とにかく教えてください。 –

答えて

2

自動生成された列は、とにかくほとんど直接操作することができないため、簡単な方法はありません。ですから、カスタム列を作成することができます。カスタム列を作成すると、自動的に生成される列(この動作は変更できません)より前に常に来るようになり、自動生成されたビット列は非表示になります。

カラムを非表示にする方法は、hereと記載されています。基本的に、あなたは、Columnsコレクションを使用するので、これを実行する必要はありません。

protected void DocumentReviewGrid_RowCreated(object sender, GridViewRowEventArgs e) 
{ 
    e.Row.Cells[X].Visible = false; // hides the first column 
} 

ここXを非表示にするには、列の0から始まるインデックスです。列を付加する

そして今、ちょうどAutoGenerateColumns="true"を残して、それをあなたが望むように定義する:

<asp:GridView ID="DocumentReviewGrid"...> 
    <Columns> 
     <asp:CheckBoxField HeaderText="Esclusione" DataField="Esclusione" /> 
    </Columns> 
</asp:GridView> 

確かに、これはかなりハックですが、あなたがしたい場所それはほとんどあなたを取得します - ブール列表示され、編集可能に。

+0

私は試してみます –

関連する問題