選択したタブに応じて動的にレンダリングされるusercontrolを含むTabContainerコントロールを使用しています。 usercontrolの内部には、チェックボックス、ラベル、および隠しフィールドを含むリピータがあります。 itemdataboundイベント内でこれらのフィールドの値を更新/変更しています。CheckBoxとHiddenフィールドの値がリピータ内で更新されない
ページが最初に読み込まれるときにすべてが正常に機能していますが、その後にリピーターを再バインドすると、ラベル値だけが変更され、古い値を含むチェックボックス/隠しフィールドのみが変更されます。
私はすべての更新パネルを使用していません。私が間違っていることを提案してください。下は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"));
}
}
私の問題を調べてくれてありがとう。私は、Session ["ListIngredients"]というセッション変数でデータを取得しています。最初にページが読み込まれた後、リピーターにバインドされているSession ["SearchResult"]という別のセッション変数にフィルタリングされた出力を入れています。 コードをデバッグするときに値が表示されます – ChupChapCharli