문제

GridView와 함께 이런 일을하고 싶습니다.

<asp:CommandField ShowSelectButton="True" Visible='<%# return Eval("SC_TABLE") %>' />

그러나 그것은 작동하지 않습니다. 오류가 발생합니다.

데이터 바인딩 표현식은 데이터베이닝 이벤트가있는 객체에서만 지원됩니다. System.Web.ui.WebControls.Commandfield에는 데이터베이닝 이벤트가 없습니다.

어쨌든 ASPX 페이지에서 가시성을 설정할 수 있습니까? 추신 : sc_table은 데이터 소스에서 존재하므로 해당 부분에서는 아무런 문제가 없습니다.

도움이 되었습니까?

해결책

대신 템플릿 필드 로이 작업을 수행 할 수 있습니다 ...

<asp:TemplateField>
    <ItemTemplate>
        <asp:LinkButton runat="server" ID=SelectButton CommandName="SELECT" Visible='<%# Eval("SC_TABLE") %>' Text="Select" />
    </ItemTemplate>
</asp:TemplateField>

다른 팁

나는 끝에서 답을 찾았다 이 게시물:

기본적으로 Datagrid에서 RowCreated 이벤트를 캡처해야합니다.

onrowcreated = "gridview1_rowcreated"

그런 다음 ASPX.CS 페이지에서 다음 코드를 사용하여 컨트롤을 숨 깁니다.

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowIndex == 1)
    {
        e.Row.Cells[0].Controls.Clear();
    } 
}

첫 번째 열에 명령 필드가있는 경우 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top