0
votes

Comment afficher une fenêtre contextuelle avec l'option Oui et Non à partir du code C # derrière sans cliquer sur aucun bouton et prendre la réponse de l'utilisateur

Je veux afficher une fenêtre contextuelle avec oui et aucune option du code C # derrière sans cliquer sur n'importe quel bouton et je dois également saisir la réponse de l'utilisateur dans le code derrière pour effectuer une action dans ASP.NET Page.

plus spécifique: j'ai une zone de texte, où l'utilisateur entrera dans certaines données, sur TextBox_Change Event, je dois valider les données saisies et afficher une fenêtre contextuelle à l'utilisateur si cela est valide ou non et prenez la réponse de l'utilisateur dans le formulaire. de oui / non, en fonction de cela, je dois encore effectuer une certaine opération sur le code derrière.

Je sais que je sais de l'implémenter avec un bouton, mais mon exigence est d'afficher la fenêtre contextuelle lorsque l'utilisateur entre dans les données dans la zone de texte.

aidez-moi aux gars, merci.


0 commentaires

3 Réponses :


0
votes

Vous pouvez utiliser la méthode confirm () en javascript.

if (IsPostBack)
{
    var result = Request.Params["__EVENTARGUMENT"];
}

Sur le serveur dans Page Load () : p >

if (confirm("Your Question?")){
    __doPostBack('', 'YES');
} else {
    __doPostBack('', 'NO')
}  


1 commentaires

Merci pour une réponse rapide Max, mais selon mes besoins, je dois effectuer cette opération sur l'événement textBox_change, pas dans Page Load () et aussi, je dois envoyer une entrée utilisateur dans une fenêtre contextuelle, pouvez-vous m'aider avec ces contextes?



0
votes

vous pouvez ouvrir une fenêtre contextuelle avec javascript et après avoir reçu la réponse de l'utilisateur, effectuez une récupération avec le résultat:

<button id="button">POP</button>
.pop{
  height:100vh;
  width:100vw;
  background:#000;
  display: flex;
  justify-content: center;
  align-items: center;
}
function pop(){
  return new Promise(function(resolve, reject) {
  
    let popEle = document.createElement("div");
    popEle.className="pop";
    document.body.appendChild(popEle);
    
    let yes = document.createElement("button");
    yes.innerHTML="YES";
    yes.addEventListener("click",()=>{resolve("YES");});
    popEle.appendChild(yes);
    
    let no = document.createElement("button");
    no.innerHTML="NO";
    no.addEventListener("click",()=>{resolve("NO");});
    popEle.appendChild(no);
    
  });
}
document.querySelector("#button").addEventListener("click",()=>{
  pop().then((res)=>{
    document.querySelector(".pop").remove();
    fetch("https://mydomine.com/myback.net?result="+res);
  })
})


1 commentaires

merci pour la réponse, je ne suis pas bon en JS, pouvez-vous me dire également comment appeler votre fonction java? J'ai essayé avec ceci: ScriptManager.RegisterClientScriptBlock (this, this.GetType (), "popup", "pop ();", true); mais cela n'a pas fonctionné .. et je dois aussi envoyer les entrées de l'utilisateur dans Pop-up (de la zone de texte à Pop-up).



0
votes

La meilleure pratique consiste à créer une fonction javascript:

[WebMethod]
public static void UpdateData(string smsCode)
{

}

Ensuite, ajoutez un attribut sur votre zone de texte comme ceci:

$.ajax({
            type: "POST",
            url: "webmethods.aspx/UpdateData",
            cache: false,
            data: "{ smsCode: " + response+ "}",
            contentType: "application/json",
            success: function (response) {
                if (response.Success)
                {                     

                }
            }
        });

Puis si vous voulez envoyer cette réponse au serveur, vous pouvez utiliser ajax avec WebMethod comme:

txtsomeData.Attributes.Add("Ontextchange","popup()");

Et

function popup(){
var response=confirm("this data is validate?");
}

Sinon, vous pouvez mettez-le sur

en utilisant clientId et mettez votre code sur la fonction JS popup () après confirmation puis attrapez-le sur votre code derrière

J'espère que cela vous aidera.


0 commentaires