Kentico Unigrid OnExternalDataBound 的复选框控件在排序后不会刷新

Kentico Unigrid OnExternalDataBound's checkbox controls don't get refreshed after sorting

Kentico unigrid 控件中的自定义复选框存在问题,如下所示:

当我在 OnExternalDataBound 函数中使用复选框控件时,一切正常,除了当我单击任何排序链接时,复选框的值保持不变!?

示例:当我进行选择(例如前三项)然后对网格进行排序时,前三项仍处于选中状态,即使它们现在不再是我在排序前选择的三项.

 protected object unigridXXX_OnExternalDataBound(object sender, string sourceName, object parameter)
 {
    var drv = (DataRowView)parameter;
    var obj = (DataControlFieldCell)sender;
    int reviewId = ValidationHelper.GetInteger(drv.Row["ItemID"], 0);
    bool isExcludedFromEmail = ValidationHelper.GetBoolean(drv.Row["EmailExclusion"], false);

    if (sourceName.ToLower() == "excludedemail")
    {
        CheckBox chkEmailExclusion = new CheckBox();
        chkEmailExclusion.Enabled = true;

        if (isAdmin || (isTrainingAdmin))
        {
            chkEmailExclusion.ID = "chkEmailExclusion";
            chkEmailExclusion.TextAlign = TextAlign.Left;
            chkEmailExclusion.Enabled = false;
            chkEmailExclusion.CssClass = "excluded-email";
            chkEmailExclusion.Checked = isExcludedFromEmail;
        }

        return chkEmailExclusion;
    }
}

如果这是一个已知的错误,请告诉我,并且有解决方法。

请注意:此问题仅适用于复选框和可能的文本框控件机器人,不适用于任何其他控件。

我正在使用 Kentico v8.2.16

谢谢,

使复选框的标识符唯一。否则viewstate无法正常加载

使用这样的东西:

chkEmailExclusion.ID = "chkEmailExclusion_" + reviewId ;

另外,在条件外设置ID。在 chkEmailExclusion.Enabled = true;.

之后