C# 访问服务器端的按钮

C# 访问服务器端的按钮,c#,asp.net,vb.net,c#-4.0,devexpress,C#,Asp.net,Vb.net,C# 4.0,Devexpress,我的代码: <dx:ASPxTreeList ID="treeList" runat = "server"> <Columns> <dx:TreeListDataColumn Name="Edit" FieldName="EditColumn"> <DataCellTemplate> <dx:ASPxButton ID="btnSample" runat="server" Text="S

我的代码:

<dx:ASPxTreeList ID="treeList" runat = "server">
    <Columns>
      <dx:TreeListDataColumn Name="Edit" FieldName="EditColumn">
        <DataCellTemplate>
          <dx:ASPxButton ID="btnSample" runat="server" Text="SampleText">
          </dx:ASPxButton>
        </DataCellTemplate>
       </dx:TreeListDataColumn>
    </Columns>
    </dx:ASPxTreeList>

我的目标是使按钮
btnSample
Page\u Load
上对false可见。因此,我需要访问服务器端
Page\u Load
事件上的
btnSample
id。我不知道如何访问服务器端
TrreListDataColumn
中按钮的
ID

处理事件:


此按钮将显示在每行中。您何时需要该按钮可见?您能否在开始时将其ClientVisible属性设置为false,并在必要时显示它?您需要隐藏所有行中的所有按钮还是只隐藏其中的一部分?我有另一个名为“客户端id”的列。例如,对于一些客户端id,我需要使此按钮对false可见。
btnSample
返回空值,因为在
viewsource
中,id是以不同的格式生成的
(即btnsampletdA、btnsampletdAB、,诸如此类等等。因此,我无法访问
btnSample
控件。我尝试了一些其他的选择,比如
control.clientID
,然后
控件(btnsample)
也没有填充在列表中。但是
treelist
之外的其他控件,如
btnok
btncancel
填充在
intellisense
中,也可以访问。是否有其他方法可以访问
DataCellTemplate
中的此控件。我创建了示例项目,发布的代码正常工作。您是否在没有附加条件(&&)的情况下对其进行了测试?当您删除它时,所有按钮都应该隐藏。我正在将
ASPxButton按钮
作为空值发布我的
cs
代码。请注意。
protected void treeList_OnHtmlDataCellPrepared(对象发送方,TreeListHtmlDataCellEventArgs e){if(“EmpID”).Equals(e.Column.FieldName)和&e.CellValue.ToString()=“1”){ASPxButton button=(ASPxButton)treeList.FindDataCellTemplateControl(e.NodeKey,e.Column,“btnShowPopup”);if(button!=null)button.Visible=false;}}
非常感谢。你很好地指引我实现我的目标。首先我感谢你的耐心。正如我所预料的那样,它工作得很好。我再次感谢你出色的解决方案。伟大的
protected void TreeList_HtmlDataCellPrepared(object sender, TreeListHtmlDataCellEventArgs e)
{
    int empId = (int) e.GetValue("EmpID");
    if ("EditColumn".Equals(e.Column.FieldName) && empId == 1)
    {
        ASPxButton button = (ASPxButton) treeList.FindDataCellTemplateControl(e.NodeKey, e.Column, "btnSample");
        if (button != null)
            button.Visible = false;
    }
}