Il s’agit du code suivant: la page est actualisée dès que l’événement click de btninsert est terminée. Je souhaite arrêter l’actualisation de la page après le clic de la souris.
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div style="margin-bottom: 20px; margin-top: 20px;"><span><strong style="font-size: large;">Edit User</strong></span></div>
<div>
<span style="float: left; width: 50%;"> </span> <span style="float: left; width: 50%;">
<span style="width: 100%; float: left; text-align: right;">
<asp:Label ID="lblMessage" runat="server" Text="-"></asp:Label></span>
</span>
</div>
<div style="width: 100%; float: left;">
<hr />
</div>
<div style="width: 816px; margin-left: 5px; margin-top: 20px; height: 463px;">
<div style="width: 100%; float: left; padding-top: 15px; height: 257px; margin-left: 0px;">
<span class="Divide">
<span class="simDivide1">FullName</span>
<span class="simDivide">
<asp:TextBox ID="txtfullname" runat="server" Width="180px">
</asp:TextBox>
</span>
</span>
<span class="Divide">
<span class="simDivide1"></span>
<span class="simDivide"></span>
</span>
<span class="Divide">
<span class="simDivide1">Username</span>
<span class="simDivide">
<asp:TextBox ID="txtusername" runat="server" Width="180px">
</asp:TextBox>
</span>
</span>
<span class="Divide">
<span class="simDivide1"></span>
<span class="simDivide"></span>
</span>
<span class="Divide">
<span class="simDivide1">Password</span>
<span class="simDivide">
<asp:TextBox ID="txtpassword" runat="server" Width="180px">
</asp:TextBox>
</span>
</span>
<span class="Divide">
<span class="simDivide1"></span>
<span class="simDivide"></span>
</span>
<span class="Divide">
<span class="simDivide1">Mobile No
</span>
<span class="simDivide"><asp:TextBox ID="txtmobileno" runat="server" Width="180px">
</asp:TextBox>
</span>
</span>
<span class="Divide">
<span class="simDivide"></span>
</span>
<span class="Divide">
<span class="simDivide1">Role
</span>
<span class="simDivide"><asp:TextBox ID="txtrole" runat="server" Width="180px">
</asp:TextBox>
</span>
</span>
<script src="jquery-2.0.2.js"></script>
<script language="javascript">
function done() {
var list = document.getElementById("tid");
list.removeChild(list.lastChild);
}
function changecourse(e) {
var change = document.getElementById('mytext').value;
var i = 1;
mNewObj = document.createElement('div');
mNewObj.id = "BOX" + i;
mNewObj.style.visibility = "show";
mNewObj.innerHTML = change + " <a href='#' style='text-decoration: none; color:red' onClick='done()'> x </a> ";
document.getElementById("tid").appendChild(mNewObj);
i++
var a = document.getElementById('mytext').selectedIndex;
document.getElementById("ContentPlaceHolder1_Hidden1").value = a;
//document.getElementById("ContentPlaceHolder1_btninsert").click();
deleted();
}
function yes() {
$("#ContentPlaceHolder1_btninsert").click();
}
//function insert() {
// $.ajax({
// type: "POST",
// url: "Edituser.aspx.cs/insert",
// success: function () { alert('success'); },
// error: function () { alert('error'); }
// });
//}
function cancel() {
var select = document.getElementById('mytext');
select.remove(select.selectedIndex);
}
function deleted() {
document.getElementById("mytext").style.display = 'none';
document.getElementById("Button1").style.display = 'none';
document.getElementById("tid").style.display = 'inline';
document.getElementById("mylink").style.display = 'inline';
}
function showdiv() {
document.getElementById("mylink").style.display = 'none';
document.getElementById("mytext").style.display = 'inline';
document.getElementById("Button1").style.display = 'inline';
}
</script>
<input id="Hidden1" type="hidden" runat="server" />
</div>
<asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Style="margin-left: 5px" Text="Edit" Width="39px" />
<br>
<br>
<asp:UpdatePanel runat="server">
<ContentTemplate>
    <div id="tid" >
</div>
<div id="di">
<a id="mylink" onclick="showdiv()">Add Depot</a>
<select id='mytext' name='mytext' style="display: none">
<option>--Select--</option>
<option>Mumbai</option>
<option>Delhi</option>
<option>Banglore</option>
<option>Ahmedabad</option>
</select>
<input type="button" id="Button1" style="display: none" onclick=" changecourse(); yes(); cancel(); return false;" value="add" />
</div>
<asp:Button ID="btninsert" runat="server" Style="display: none" OnClick="btninsert_Click" Text="Insert" ValidationGroup="C" />
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
et c'est Edit.aspx.cs dans lequel j'ai méthode
protected void btninsert_Click(object sender, EventArgs e)
{
string a = Hidden1.Value;
string UserId = Convert.ToString(Session["LoginId"]);
con.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO UserDepot (UserId,DepotId)" +
"VALUES ('" + UserId + "','" + a + "')", con);
cmd.ExecuteNonQuery();
con.Close();
}
Ajouter OnClientClick="return false;"
,
<asp:button ID="btninsert" runat="server" text="Button" OnClientClick="return false;" />
ou dans le CodeBehind:
btninsert.Attributes.Add("onclick", "return false;");
Comme vous utilisez asp:Button
qui est un contrôle serveur, il y aura un retour pour éviter que le bouton html
soit utilisé,
asp:Button .... />
Tapez à
input type="button" .... />
La page a été rafraîchie lorsqu’un déplacement vers le serveur est effectué, et les contrôles serveur tels que Bouton a une propriété AutoPostback = true par défaut, ce qui signifie que chaque fois qu’on clique dessus, un déplacement vers le serveur est effectué ..__ AutoPostback = false pour le bouton d'insertion, et cela fera l'affaire pour vous.
si vous avez des codes dans votre méthode Page_Load et que vous ne voulez pas que ceux-ci s'exécutent après un clic sur le bouton, utilisez if (! IsPostBack) sur Page_Load
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// put codes here
}
}
asp: Button est un contrôle serveur et permet d'envoyer une requête au serveur et d'obtenir une actualisation de la page de réponse. Vous pouvez utiliser JQuery et Ajax pour empêcher l'actualisation complète de la page.
Définissez MaintainScrollPositionOnPostBack="true"
dans la déclaration de page:
<%@ Page Language="C#" MaintainScrollPositionOnPostBack="true" Title="Home" %>
Vous pouvez utiliser le "toolkit ASP.net AJax Control" conçu pour asp.net http://www.ajaxcontroltoolkit.com/
html
"input type ="text" id="txtnothing" runat ="server" "
javascript
var txt = document.getElementById("txtnothing");
txt.value = Date.now();
code
If Not (Session("txtnothing") Is Nothing OrElse String.IsNullOrEmpty(Session("txtnothing"))) Then
If Session("txtnothing") = txtnothing.Value Then
lblMsg.Text = "Please try again not a valid request"
Exit Sub
End If
End If
Session("txtnothing") = txtnothing.Value
Je pense que j'ai aussi ce problème, j'essayais de rendre le calendrier visible après avoir cliqué sur un bouton, mais la page continue de se rafraîchir après avoir cliqué sur le bouton.
MaintainScrollPositionOnPostBack="true"
Cela a effectivement répondu à mon problème.
Je ne peux ni voter ni commenter, je viens de rejoindre SO aujourd'hui.