2016-07-14 10 views
0

DevExpress에서 ASPxGridView 기본 레코드의 일부 속성을 기반으로 그리드의 모든 행에 단추를 표시하거나 숨길 필요가 있습니다. DevExpress ASPxGridView의 경우 GridView.RowDataBound asp.net Gridview에있는 이벤트를 찾을 수 없으므로 문제를 해결하는 데 도움이됩니다.devexpress ASPxGridView 조건부로 행의 단추 표시

감사

답변

0

더 검색 한 후 나는 gridview.rowdatabound에 해당하는 이벤트가 ASPxGridView가

을 HtmlRowCreated하지만 요구 사항 asper 당신이 는 각각의 셀을 스캔 유용합니다을 HtmlDataCellPrepared 시도 할 수 있습니다에 있음을 발견 aspxgridview 또한 우리는 다른 열에서 데이터 값에 액세스 할 수 있습니다 또한 여기에 내가이 일을 설명하는 샘플 코드를 첨부하십시오.

ASPX 페이지

  <dx:ASPxGridView ID="ASPxGridView1" OnHtmlDataCellPrepared="ASPxGridView1_HtmlDataCellPrepared" runat="server" AutoGenerateColumns="False"> 
       <Columns> 
        <dx:GridViewDataTextColumn FieldName="ID"> 
         <DataItemTemplate> 
          <dx:ASPxButton ID="btn" runat="server" Text="click me"> 
          </dx:ASPxButton> 
         </DataItemTemplate> 
        </dx:GridViewDataTextColumn> 
        <dx:GridViewDataTextColumn FieldName="ItemName"> 
        </dx:GridViewDataTextColumn> 
        <dx:GridViewDataTextColumn FieldName="ItemValue"> 
        </dx:GridViewDataTextColumn> 

       </Columns> 
      </dx:ASPxGridView> 

CS 페이지 : 상기 코드

protected void Page_Load(object sender, EventArgs e) 
    { 
     ASPxGridView1.DataSource = GetData(); 
     ASPxGridView1.DataBind(); 
    } 

    public DataTable GetData() 
    { 
     DataTable Table = new DataTable(); 
     Table.Columns.Add("ID", typeof(int)); 
     Table.Columns.Add("ItemName", typeof(string)); 
     Table.Columns.Add("ItemValue", typeof(string)); 
     Table.Rows.Add(1, "A", "AA"); 
     Table.Rows.Add(2, "B", "BB"); 
     Table.Rows.Add(2, "B", "BB"); 
     Table.Rows.Add(2, "A", "BB"); 
     return Table; 
    } 

    protected void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs e) 
    { 
     if (e.DataColumn.FieldName == "ID") 
     { 
      ASPxButton textBox = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, e.DataColumn, "btn") as ASPxButton; 
      if (Convert.ToString(e.GetValue("ItemName")).Equals("B")) 
      { 
       textBox.Text = Convert.ToString(e.CellValue); 
       textBox.Visible = true; 
      } 
      else 
      { 
       textBox.Visible = false; 
      } 
     } 
    } 

i는 항목 이름 열을 기반으로 하나 숨기기 버튼 열을 갖는다.

도움이 될 수 있기를 바랍니다.

+0

대단히 감사드립니다. 나중에 사용해 보겠습니다. 잠시 동안, 나는 또 다른 아이디어를 위해 일하고있다 : ASPxButton의 속성 Visible에 대한 함수를 사용한다. 어떤 조건에서는 숨겨야한다. –