我有一个包含以下列的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;
}
}
它是客户端代码而不是回调。
答案 0 :(得分:1)
首先检查Accessing Controls Contained within Templates
显示是/否
在HtmlRowCreated事件访问控制上,并在找到控件后设置它的文本属性 Literal literal = ASPxGridView1.FindRowCellTemplateControl(e.VisibleIndex, ASPxGridView1.Columns [“Name”]为GridViewDataColumn,“ASPxButtonEdit1”)为Literal; literal.Text =(bool)grid.GetRowValues(e.VisibleIndex,“columnName”)? “是”:“否”;
在编辑行模板中执行上述操作..
如果您想要做一些客户端功能,那么..创建客户端事件OnClientClick
并使用复选框客户端方法。 chkclientinstanceName.getValue();或其他检查与否检查..
这些控件是客户端可访问的,因此可以使用txtClientName.SetEnabled(true/false);
获取更多帮助,请转到
DevExpress.Web.ASPxEditors ClientScript namespace..
一步一步地试试..希望它会有所帮助..