2017-03-29 12 views
0

데이터 소스에 바인딩 된 gridview가 있습니다.Gridview, 자동 생성 열, 선택란 열 편집 가능

enter image description here

당신이 자동 생성 열을 true로 설정하고이 그런 식으로 유지해야 볼 수 있듯이

<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> 
. 컬럼 중 하나는 SQL 비트 값이므로 체크 박스로 표시됩니다. "AutoGenerateEditButton"속성을 사용하지 않고 확인란 열만 편집 할 수 싶습니다. 난 그냥 싶습니다 :

  • 은 (내가 여기 붙어있다)
  • 의 체크 박스를 체크 해제하고 다른 열은 읽기 전용
를해야합니다 외부 버튼
  • 를 사용하여 단일 업데이트를 수행/확인 할 수
  • +1

    나는 깨끗한 방법을 생각할 수는 없지만 그렇게 하기엔 어색한 해결 방법을 알고 있습니다. 그러나 두 가지 질문이 있습니다. 먼저 열의 순서가 항상 같고, 편집 가능한 열이 표의 첫 번째로 나타나면 문제가되는 것입니까? – Andrei

    +0

    필자는 열의 순서를 신뢰할 수 있지만 편집 가능한 열은 열의 중간에있게됩니다. 첫 번째 열이 필요한 솔루션이 있다면 어쨌든 말해주십시오. –

    답변

    2

    자동 생성 된 열은 어쨌든 거의 직접 조작 할 수 없으므로이를 수행하는 간단한 방법은 없습니다. 그래서 당신이 할 수있는 일은 커스텀 컬럼을 생성하는 것입니다. 커스텀 컬럼은 자동 생성 된 컬럼 (항상이 동작은 변경 될 수 없습니다)보다 먼저 발생하며 자동 생성 된 비트 컬럼을 숨 깁니다.

    열을 숨기는 방법은 here입니다. 기본적으로 당신은 열 모음을 사용하기 때문에이 작업을 수행 할 필요가 없습니다

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

    숨길 열의 0 기반 인덱스입니다.

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

    은 틀림이 매우 hackish,하지만 당신이 원하는 곳은 거의 당신을 얻을 것이다 - 부울 열이 표시되고 편집 :

    그리고 지금은 AutoGenerateColumns="true"를 떠나, 열이 그냥 당신이 원하는 방식으로 정의 앞에 추가합니다.

    +0

    나는 그것을 시험해보고있다. –