J'ai une page ASP.NET avec 10 éléments LinkButton générés dynamiquement. Lorsqu'un utilisateur clique sur l'un de ces éléments LinkButton, je souhaite afficher son texte dans une boîte de dialogue modale. L'utilisateur peut alors changer le texte en entrant une valeur dans un TextBox. Mon code pour cela ressemble à ce qui suit:ASP.NET - Empêcher l'actualisation de page avec ModalPopupExtender
<asp:ScriptManager ID="theScriptManager" runat="server" />
<asp:UpdatePanel ID="myUpdatePanel" runat="server">
<ContentTemplate>
<asp:Table ID="myTable" runat="server" OnInit="myTable_Init" CellPadding="10" CellSpacing="10" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:LinkButton ID="testLinkButton" runat="server" />
<cc1:ModalPopupExtender ID="myPopupExtender" runat="server" TargetControlID="testLinkButton"
OkControlID="okButton" PopupControlID="myPanel" />
<asp:Panel ID="myPanel" runat="server" Style="display: none;">
<table border="1" cellpadding="0" cellspacing="0"><tr><td>
<table border="0" cellpadding="0" cellspacing="0" style="width: 300px;">
<tr><td colspan="2" style="background-color: Blue; font-weight: bold; color: White;">
Test
</td></tr>
<tr>
<td>You clicked <asp:TextBox ID="numTextBox" runat="server" MaxLength="3" />.</td>
<td align="right" style="padding-top: 5px; padding-bottom: 5px;">
<asp:Button ID="okButton" runat="server" Text="OK" OnClick="okButton_Click" />
</td>
</tr>
</table>
</td></tr></table>
</asp:Panel>
Mon code-behind pour ce code ASP.NET se présente comme suit:
private LinkButton selectedLinkButton = null;
protected void Page_Load(object sender, EventArgs e)
{}
protected void myTable_Init(object sender, EventArgs e)
{
TableRow row = new TableRow();
for (int i = 1; i < 11; i++)
{
LinkButton linkButton = new LinkButton();
linkButton.Text = i.ToString();
linkButton.Click += new EventHandler(linkButton_Click);
linkButton.CommandArgument = i.ToString();
AddLinkButtonToRow(linkButton, row);
}
myTable.Rows.Add(row);
}
protected void linkButton_Click(object sender, EventArgs e)
{
selectedLinkButton = (LinkButton)(sender);
numTextBox.Text = selectedLinkButton.CommandArgument;
myPopupExtender.Show();
}
protected void okButton_Click(object sender, EventArgs e)
{
if (selectedLinkButton != null)
{
selectedLinkButton.Text = numTextBox.Text.Trim();
}
}
private void AddLinkButtonToRow(LinkButton linkButton, TableRow row)
{
TableCell cell = new TableCell();
cell.Controls.Add(linkButton);
row.Cells.Add(cell);
}
Mon problème est, je veux réduire le nombre de publications . Pour ce faire, j'ai décidé d'utiliser la boîte à outils ASP.NET AJAX. Malheureusement, je n'ai aucun succès avec la mise à jour du texte LinkButton une fois que l'utilisateur clique sur "OK" dans la boîte de dialogue. En outre, il semble que je reçois toujours des publications. Comment est-ce que je l'utilise incorrectement?
Merci,