vendredi 6 mai 2016

CheckBox and Hidden field values not updating inside Repeater

I am using a TabContainer control which contains a usercontrol which is dynamically rendered depending upon selected tab. Inside usercontrol I have a repeater which contains a checkbox,label and hidden field. I am updating/changing the values of these fields inside itemdatabound event.

Everything is working fine when page loads first time but after that if I rebind the repeater then only label values are changing and checkbox/hiddenfield containing some old values.

I am not using any updatepanel at all. Please suggest what I am doing wrong.Below is my code snippet inside itemdatabound.

protected void rptrIngrList_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        try
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                SimpleIngredientObject currentItem = e.Item.DataItem as SimpleIngredientObject;

                HiddenField hiddenIngrId = (HiddenField)e.Item.FindControl("hdnIngrId");
                hiddenIngrId.Value = currentItem.IngredientId.ToString();

                HiddenField hdnAltIngrId = (HiddenField)e.Item.FindControl("hdnAltIngrId");
                hdnAltIngrId.Value = currentItem.IngrAltId.ToString();

                HtmlGenericControl span = (HtmlGenericControl)e.Item.FindControl("abcd");
                if (currentItem.UserIngrAvailability == 0 || currentItem.UserIngrAvailability == null)
                    span.InnerText = GetAvailabilityChar(currentItem.IngrAvailabilityId);
                else
                    span.InnerText = GetAvailabilityChar(currentItem.UserIngrAvailability);

                Label lblIngrName = (Label)e.Item.FindControl("LabelIngredientName");
                lblIngrName.Text = currentItem.IngredientName;


                CheckBox chkIngrUse = (CheckBox)e.Item.FindControl("chkIngrUsage");
             //   chkIngrUse.Checked = (currentItem.IngrMarked == null) ? false : (currentItem.IngrMarked == true) ? true : false;
                chkIngrUse.Checked = Convert.ToBoolean(System.Web.UI.DataBinder.Eval(e.Item.DataItem, "IngrMarked"));

            }
        }




Aucun commentaire:

Enregistrer un commentaire