#c# #asp.net
#c# #asp.net
Вопрос:
Шаблон repeater:
<ItemTemplate>
<div style="width:100%">
<asp:Label style="display:none" ID="ArticleID" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>'></asp:Label>
<asp:TextBox ID="ArticleOrder" runat="server" Width="20px" value='<%# DataBinder.Eval(Container.DataItem, "Order") %>'></asp:TextBox>
amp;nbsp;
<a title="Edit Article" href="javascript:void(0)" onclick="parent.document.location.href='/cms/Secured/Article/EditArticle.aspx?ArticleID=<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>'"><%# DataBinder.Eval(Container.DataItem, "Title") %> </a>
amp;nbsp;
<asp:LinkButton id="delll" runat="server" OnCommand ="Del" CommandName ='<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>'>(Delete)</asp:LinkButton>
<a href="javascript:void(0)" onclick="window.open('CategoryArticleLocationReplace.aspx?Action=updateamp;CategoryID=<%# Request.QueryString["CategoryID"].ToString()%>amp;LocationID=<%# Request.QueryString["LocationID"].ToString()%>amp;OldArticleID=<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>',null, 'height=200,width=200,status=no,toolbar=no' )">(Replace Article)</a>
amp;nbsp;
</div>
</ItemTemplate>
Код обновления базы данных:
protected void up_Click1(object sender, EventArgs e)
{
foreach(RepeaterItem _item in rptArticleList.Items)
{
dcLigdol DB = new dcLigdol();
TextBox tbArticleOrder = (TextBox)_item.FindControl("ArticleOrder");
Label lblArticleID = (Label)_item.FindControl("ArticleID");
byte ArticleOrder;
if(tbArticleOrder.Text.Trim() == "")
ArticleOrder = byte.Parse("99");
else
ArticleOrder = byte.Parse(tbArticleOrder.Text.Trim());
int ArticleID = int.Parse(lblArticleID.Text.Trim());
int CategoryID = int.Parse(Request.QueryString["CategoryID"].ToString().Trim());
byte LocationID = byte.Parse(Request.QueryString["LocationID"].ToString().Trim());
DB.spCategory_Article_Location_Order_Update(ArticleID, ArticleOrder, CategoryID, LocationID);
}
Show();
}
Если я помещаю точку торможения в цикл, я получаю tbArticleOrder.Текст = «» каждый раз.
Я не могу понять, почему это не работает.
Спасибо!
Комментарии:
1. Вы не будете повторно привязывать Repeater к post обратно, не так ли?
2. Функция Show () повторно привязывает repeater, но это только после обновления. Это полный обработчик нажатия кнопки.
3. Когда страница загружается, и вы изначально привязываете повторитель, находится ли это в пределах
!Page.IsPostBack
?4. @Tim: Спасибо! Только что понял, что мой партнер-идиот по программированию закрыл! Является ли postback оставлением первого вызова Show () за пределами фигурных скобок 🙂 Не возражаете добавить ответ, чтобы я мог отдать вам должное?
Ответ №1:
Убедитесь, что вы не повторно привязываете repeater при обратной передаче страницы.
Вставьте исходный код, который привязывает repeater к !Page.IsPostBack
условию 🙂