174 votes

Comment utiliser __doPostBack ()

J'essaie de créer une publication asynchrone dans asp.net en utilisant __doPostBack (), mais je ne sais pas comment le faire. Je veux utiliser JavaScript javascript.

Quelque chose de simple, comme un clic de bouton, peut provoquer le déclenchement de l'événement __doPostBack (). J'essaie juste d'apprendre comment fonctionne le mécanisme.

172voto

Mr Gray Points 2318

Vous pouvez essayer ceci dans votre formulaire Web avec un bouton appelé btnSave, par exemple:

 <input type="button" id="btnSave" onclick="javascript:SaveWithParameter('Hello Michael')" value="click me"/>

<script type="text/javascript">
function SaveWithParameter(parameter)
{
  __doPostBack('btnSave', parameter)
}
</script>
 

Et dans votre code, ajoutez quelque chose comme ceci pour lire la valeur et l'exploiter:

 public void Page_Load(object sender, EventArgs e)
{
  string parameter = Request["__EVENTARGUMENT"]; // parameter
  // Request["__EVENTTARGET"]; // btnSave
}
 

Essayez-le et dites-nous si cela a fonctionné pour vous.

27voto

user2775317 Points 51

C'est également un bon moyen de publier des contrôles côté serveur dans FancyBox et / ou jQuery Dialog . Par exemple, dans FancyBox-div:

    <asp:Button OnClientClick="testMe('param1');" ClientIDMode="Static"  ID="MyButton"  runat="server" Text="Ok" >
</asp:Button>
 

JavaScript:

 function testMe(params) {
    var btnID= '<%=MyButton.ClientID %>';          
    __doPostBack(btnID, params);
}
 

Page_Load côté serveur:

  string parameter = Request["__EVENTARGUMENT"];
 if (parameter == "param1")
     MyButton_Click(sender, e);
 

16voto

kbrimington Points 14081

Voici un bref tutoriel sur le fonctionnement de __doPostBack() .

Pour être honnête, je ne l'utilise pas beaucoup; au moins directement. De nombreux contrôles de serveur (par exemple, Button , LinkButton , ImageButton , parties du GridView , etc.) utilisent __doPostBack tant que mécanisme de postback; __doPostBack() est souvent au-dessous de mon avis en tant que problème de développement.

-1voto

user3906151 Points 11

essaye ça

passer un paramètre à la fonction c #

 < a href="#" onclick="__doPostBack('','Fill_prs_main_data;
<%#Eval("prs_idno")%>')" >


        string parameter = Request["__EVENTARGUMENT"];
        if (parameter != null && !parameter.Equals(""))
        {
            string function = parameter.Split(';')[0];
            string para = parameter.Split(';')[1];

            if (function.Equals("Fill_prs_main_data"))
            {
                Fill_prs_main_data(parameter.Split(';')[1]);
            }
        }
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X