Frage

Ich habe eine ASP.NET -DDL, die so aussieht, wenn ich Quelle anzeige:

<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">

Auf der Seite .cs sieht es so aus:

<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />

Kann jemand ein Problem mit der Verwendung von Onchange und autopostback = "true" auf einem DDL -solchen DDL sehen? Ich frage, weil wir einige Benutzer haben, für die der Docentomstuff () nicht richtig angerufen zu werden scheint, und ich frage mich, ob es möglich wäre, dass das __Dopostback () ausgeführt wird, bevor Docustomstuff () seine Arbeit ausführt.

War es hilfreich?

Lösung

Versuchen Sie, solche Postback -Referenz manuell anzuhängen:

Page.ClientScript.RegisterClientScriptBlock(
  typeof(_Default), 
  "PageScripts", 
  string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);

testControl.Attributes["onchange"] =  "DoCustomStuff();";

Dies gibt Ihnen die Postback -Client -Seite Referenz:

Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top