ASPxGridView:如何在选中或取消选中GridViewDataCheckColumn时禁用GridViewDataColumn?

时间:2011-11-28 18:31:11

标签: callback devexpress aspxgridview

我有一个包含以下列的ASPxGridView:

<dx:GridViewDataCheckColumn FieldName="ProtocolEnabled" Caption="Protocol Enabled">
    <DataItemTemplate>
        <asp:Literal ID="ltProtocolEnabled" runat="server" />
    </DataItemTemplate>
</dx:GridViewDataCheckColumn>
<dx:GridViewDataColumn FieldName="ProtocolCount" Width="0" Caption="Protocol Count">

复选框列中有一个带有文字的模板,因此我可以显示是/否而不是空复选框,但这可能是TMI。我需要做的是:

在编辑模式下:选中ProtocolEnabled时,我需要启用ProtocolCount文本框。取消选中ProtocolEnabled时,我需要禁用ProtocolCount并将其文本设置为0。

我不是一步一步地要求,而是指向正确方向的一般指针。我想尽可能使用回调。我也承诺我不会删除这个问题,因为你正在回答它= P。

更新:感谢回答者,我被送往了我需要去的方向。这是我使用的代码:

<dx:GridViewDataCheckColumn FieldName="ProtocolEnabled" Caption="Protocol Enabled" CellStyle-HorizontalAlign="Left">
    <DataItemTemplate>
        <asp:Literal ID="ltProtocolEnabled" runat="server" />
    </DataItemTemplate>
    <PropertiesCheckEdit>
        <ClientSideEvents CheckedChanged="function(s,e) {ProtocolEnabledChecked(s);}" />
    </PropertiesCheckEdit>
</dx:GridViewDataCheckColumn>
<dx:GridViewDataColumn FieldName="ProtocolCount" Width="0" Caption="Protocol Count">

function ProtocolEnabledChecked(ck) {
    var x = gvApplicationServer.GetEditor("ProtocolCount");
    if (ck.GetValue()) {
        x.enabled = true;
    }
    else {
        x.SetValue(0);
        x.enabled = false;
    }        
}

它是客户端代码而不是回调。

1 个答案:

答案 0 :(得分:1)

首先检查Accessing Controls Contained within Templates

显示是/否

  1. 在HtmlRowCreated事件访问控制上,并在找到控件后设置它的文本属性 Literal literal = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex,     ASPxGridView1.Columns [“Name”]为GridViewDataColumn,“ASPxButtonEdit1”)为Literal; literal.Text =(bool)grid.GetRowValues(e.VisibleIndex,“columnName”)? “是”:“否”;

  2. 在编辑行模板中执行上述操作..

  3. 如果您想要做一些客户端功能,那么..创建客户端事件OnClientClick并使用复选框客户端方法。 chkclientinstanceName.getValue();或其他检查与否检查..

  4. 这些控件是客户端可访问的,因此可以使用txtClientName.SetEnabled(true/false);

    启用/禁用

    获取更多帮助,请转到

    DevExpress.Web.ASPxEditors  ClientScript namespace..
    

    一步一步地试试..希望它会有所帮助..