c# - sirve - hacer postback
Cómo usar__doPostBack() (4)
Estoy intentando crear una devolución de datos asíncrona en ASP.NET usando __doPostBack()
, pero no tengo ni idea de cómo hacerlo. Quiero usar JavaScript vanidoso
Algo simple como un clic de botón puede provocar que el evento __doPostBack()
se dispare. Solo estoy tratando de aprender cómo funciona el mecanismo.
Aquí hay un breve tutorial sobre cómo funciona __doPostBack()
.
Para ser honesto, no lo uso mucho; al menos directamente. Muchos controles de servidor (por ejemplo, Button
, LinkButton
, ImageButton
, partes de GridView
, etc.) usan __doPostBack
como su mecanismo posterior de publicación.
Esta también es una buena forma de hacer que los controles del lado del servidor se registren en FancyBox y / o jQuery Dialog . Por ejemplo, en 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);
}
Server_late Page_Load:
string parameter = Request["__EVENTARGUMENT"];
if (parameter == "param1")
MyButton_Click(sender, e);
Me gustaría agregar algo a esta publicación para asp:button
. He intentado con clientId y parece que no funciona para mí:
__doPostBack(''<%= btn.ClientID%>'', '''');
Sin embargo, al obtener UniqueId parece que se vuelve a publicar en el servidor, como se muestra a continuación:
__doPostBack(''<%= btn.UniqueID%>'', '''');
Esto podría ayudar a alguien más en el futuro, por lo tanto publicar esto.
Puede probar esto en su formulario web con un botón llamado btnGuardar por ejemplo:
<input type="button" id="btnSave" onclick="javascript:SaveWithParameter(''Hello Michael'')" value="click me"/>
<script type="text/javascript">
function SaveWithParameter(parameter)
{
__doPostBack(''btnSave'', parameter)
}
</script>
Y en su código detrás agregue algo como esto para leer el valor y operarlo:
public void Page_Load(object sender, EventArgs e)
{
string parameter = Request["__EVENTARGUMENT"]; // parameter
// Request["__EVENTTARGET"]; // btnSave
}
Haga una prueba y díganos si eso funcionó para usted.