首页 文章

Webforms:如何在后面的代码中禁用Telerik RadGrid内的按钮

提问于
浏览
0

我是webforms的新成员 . 我首先学习了MVC . 我有一个Telerik RadGrid,里面有一个MasterTableView,然后在这个MasterTableView中有几列 . 我想简单地禁用后面的代码中的一些按钮,但Visual Studio一直告诉我按钮不存在 . 在Google搜索中,我发现原因是因为按钮位于RadGrid内部 . 但是我没有找到任何访问它们的示例 .

按钮位于radgrid内部,它们看起来像这样:

<telerik:GridTemplateColumn HeaderStyle-Width="72px" HeaderText="Acciones" >
                                        <ItemTemplate >
                                            <div style="width: 100px">
                                                <span  style="position:relative;" class="grid-buttonColor1">
                                                    <i class="material-icons">create</i>
                                                    <asp:Button ID="btnEditReportDetail"  
                                                        CommandArgument='<%# Item.ReportDetailId %>' 
                                                        OnClick="btnReportDetail_Click"
                                                        runat="server" 

                                                        Style="position:absolute; opacity:0;  top:0; left:0; width:100%; height:100%;"  
                                                type="button" 
                                                causesvalidation="false" />
                                                </span>
                                                &nbsp;
                                                <span style="position: relative;" class="grid-buttonColor2">
                                                    <button 
                                                        type="button" 
                                                        style="background-color: transparent; border: none; padding: 0" 
                                                        data-toggle="modal" 
                                                        data-target="#MessageBoxModal" 
                                                        onclick="ShowMessageBoxWithMessage_<%= ucMessagebox.ClientID%>('Confirmación', '¿Está seguro que desea eliminar la tarea?','DeleteTaskReports','<%# Item.ReportDetailId.ToString() %>')">
                                                        <i class="material-icons prefix">delete</i>
                                                    </button>
                                                </span>
                                            </div>
                                        </ItemTemplate>
                                    </telerik:GridTemplateColumn>

如何访问这些按钮以便在代码后面写入代码: buttonName.Enabled = false;

请!这真让我抓狂!

感谢你们!

2 回答

  • 1

    您需要使用 FindControl 来查找Grid内部的服务器控件 .

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        Button button = e.Row.FindControl("Button1") as Button;
        button.Enabled = false;
    }
    
  • 1

    可能这会对你有所帮助

    protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
    { 
        if (e.Item is GridDataItem) 
        { 
            GridDataItem item = (GridDataItem)e.Item; 
            Button btn = item.FindControl("img1") as Button; 
            btn.Enabled = false;            
    
        } 
     }
    

    要么

    protected void RadGrid1_PreRender(object sender, EventArgs e)
    {
    if ("your Condition")
    {
        foreach (GridDataItem dataItem in RadGrid1.MasterTableView.Items)
        {
            ((Button)cmdItem.FindControl("btnEditReportDetail")).Visible = false;
        }
    }
    }
    

相关问题