ASP Label-ы на диалоге не обновляются после присвоения значения в C#
Помогите, люди добрые, кто чем может ^__^
Я уже несколько дней борюсь с этой мистикой...
У меня в .aspx есть GridView со списком клиентов.
В одной из колонок есть LinkButton, по клику на который я показываю информацию о последнем контакте этого клиента.
Так вот, почему-то, когда я открываю формочку ViewContact, она первый раз показывает правильно все данные о человеке, на которого я кликнула в гриде, а следующие разы показывает опять его, хотя я кликаю на других строках грида.
Т.е. asp:Label не перерисовывается.
Хотя если поставить брейкпойнт в обработчике события OnClick в c# и отлаживать код, то видно, что присвоение lblContactClientName.Text происходит успешно, и что в lblContactClientName, как и в остальных лейблах, хранится инфа о том человеке, на которого я только что кликнула.
Но отображается «старый» человек((((
P.S. Я пробовала дописать AutoPostBack="True" моему LinkButton-у, но это не помогло.
P.P.S. И GridView с LinkButton-ом, и диалог — лежат на одной UpdatePanel.
P.P.P.S. Я поменяла присвоение на случайное число:
Random random = new Random();
int randomNumber = random.Next(0, 100000);
lblContactClientName.Text = randomNumber.ToString();
и всё время показывает 67432 !!!!!!!!!
(при кликаньи на разных клиентов)
Т.е. лэйблы просто не перерисовываются...
А вот и код:
<asp:Content ID="cntPageContent" ContentPlaceHolderID="cphPageContent" Runat="Server"> <asp:UpdatePanel ID="upHome" runat="server" UpdateMode="Conditional"> <ContentTemplate> <table> <tr> <td colspan="2"> <asp:GridView ID="gvClients" runat="server" CssClass="grid" CellSpacing="-1" AutoGenerateColumns="False" OnRowDataBound="GridView_OnRowDataBound" HeaderStyle-HorizontalAlign="Left" HeaderStyle-Font-Underline="true"> <Columns> <asp:TemplateField HeaderText="Last Contact"> <ItemTemplate> <asp:LinkButton runat="server" ID="lbLastContact" Text='<%#Eval("ContactDateStartTimeStr") %>' OnClick="LbLastContact_Click" CommandArgument='<%# Eval("ClientID") %>'></asp:LinkButton> </ItemTemplate> </asp:TemplateField>
<div id="ViewContactDialog" style="display: none;" > <asp:Panel runat="server" ID="plnViewContact"> <table width="100%"> <tr> <td><h1><asp:Label ID="lblContactClientName" runat="server">Client Name</asp:Label></h1></td> </tr> <tr> <td><span style="font-weight: bold;">Date of Contact:</span></td> <td><asp:Label ID="lblContactDate" runat="server"></asp:Label></td> </tr> </table> </asp:Panel> <div style="position: relative; height: 25px;padding-top: 15px; width: 430px;"> <div style="position: absolute; right: 0px;"> <asp:Button ID="btnEditContact" runat="server" Text="Edit Contact" UseSubmitBehavior="false" OnClick="btnEditContact_Click" CommandArgument='<%# Eval("ContactID")%>'/> </div> </div> </div>
protected void LbLastContact_Click(object sender, EventArgs e) { int ClientID = Convert.ToInt32((sender as LinkButton).CommandArgument); var сontact = new Contact() { ClientId = ClientID }; Contact lastcontact = (Contact)сontact.ExecuteCommand(CommandName.getLastContact); lblContactClientName.Text = lastcontact.ClientName; lblContactDate.Text = lastcontact.ContactDateStr; string script = "$('#ViewContactDialog').dialog({title: 'View Contact', bgiframe: true,autoOpen: false,width: 460, height:510, modal: true});" + "$('#ViewContactDialog').dialog('open');" + "ApplyJQueryControls(); "; ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "View Contact", script, true); }
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів