Прежде всего, убедитесь, что вы делаете:
if (!IsPostBack)
{
BindDetails();
}
Это позволит вам не связываться с каждым постбэком и не потерять ваши данные.
Также я не понимаю необходимости:
if ( IsPostBack && UIControlUtil.GetPostBackControl(Page) == lnkAddToCart)
Почему вы не просто реализуете обработчик OnClick
для Button
или LinkButton
и перемещаете весь свой код, чтобы извлечь данные из повторяющегося в обработчик?
Также убедитесь, что ViewState
включен, иначе вы не сможете перебрать Repeater
, чтобы найти измененные значения.
EDIT:
Убедитесь, что вы не отключили ViewState
в контейнерах, в которых существует Repeater
. У вас должны быть данные. Единственная причина, по которой вы этого не сделаете, это то, что ViewState
отключено на элементе управления или на одном из его родителей, или вы стираете значения каким-либо образом, например, привязываете. Можете ли вы опубликовать больше своего кода, например, Page_Load
и любое событие, которое произойдет после него?
Попробуйте ввести TextBox
после Repeater
и введите в него текст соема, а затем опубликуйте свой Repeater
. Можете ли вы увидеть текст в TextBox
, который вы ввели? Если нет, то родительский элемент управления отключил ViewState
или на уровне страницы. Если вы видите значение, то где-то вы непреднамеренно привязываетесь к Repeater
и стираете ваши данные. Вам нужно поставить точку останова, где вы делаете привязку, и убедиться, что она НЕ происходит, когда вы отправляете обратно.
На данный момент я не могу оказать вам больше помощи.