在AspxGridView中,DataItemTemplate中有两个组合框,手动加载。因此,当用户选择第一个组合的一个字段时,第二个将被禁用,我写道:
<dxe:ASPxComboBox ID="cmbEqualNotEqual" runat="server"
ClientInstanceName="cmbCEqualNotEqual" EnableClientSideAPI="true">
<Items>
<dxe:ListEditItem Text=" " Value="0" />
<dxe:ListEditItem Text="Eşittir" Value="1" />
<dxe:ListEditItem Text="Eşit Değildir" Value="0" />
</Items>
<ClientSideEvents SelectedIndexChanged="function(s,e){
alert(s.GetEnabled());
var selectedIndex = s.GetSelectedIndex();
if(selectedIndex == 2)
{
cmbCBiggerSmaller.SetEnabled(false);
}
}" />
</dxe:ASPxComboBox>
但是这段代码禁用了最后一行的组合,而不是行用户的工作。如何禁用行用户的工作?
由于
答案 0 :(得分:3)
我自己回答:
for (int i = 0; i < grid.VisibleRowCount; i++)
{
ASPxComboBox combito = grid.FindRowCellTemplateControl(i, grid.Columns[2] as GridViewDataColumn, "combito") as ASPxComboBox;
//combito.Value
}
答案 1 :(得分:0)
出现问题是因为ClientInstanceName属性是为同一列中的所有编辑器设置为相同的值。一种可能的解决方案是处理ASPxGridView的HtmlRowCreated事件,并将两个编辑器的ClientInstanceName设置为唯一值。此外,在此事件处理程序中,您应该编写客户端SelectedIndexChanged事件处理程序。最后,要获取编辑器实例,请使用ASPxGridView的FindRowCellTemplateControl方法。
此外,以下文章对您有所帮助:
http://www.devexpress.com/Support/Center/ViewKBIssue.aspx?kbid=K18282