BjurisMedlem sedan juli 2001514 inlägg Jag har skapat en modalDialog.
När jag klickar på knappar i min modal så öppnas det alltid ett nytt fönster, finns det någon chans att händelserna som sker när man klickar på en knapp sker i modal fönstret?
Ex:
Jag försöker göra en sökning i mitt modalfönster, när jag klickar på search så öppnas det ett nytt riktigt fönster och där presenteras sökresultatet.
...Men jag vill ju ha det i min modal. ;)
Kör
c# & ASP.NET 2.0, men det borde inte spela någon roll, jag har ingen speciell target.
Peter SMedlem sedan dec. 20025 483 inlägg Exempel som fungerar för mig:
<base target="_self">
<form action="http://www.webforum.nu">
<input type="submit">
</form>
<base target="_self">
<a href="http://www.webforum.nu/">wF</a>
<script type="text/javascript">
window.name = "modal";
</script>
<form action="http://www.webforum.nu" target="modal">
<input type="submit">
</form>
BjurisMedlem sedan juli 2001514 inlägg Skapar min modal enl:
<input id="SearchButtonShip" type="button" value="Address" class="BUTTON" onclick="ShowAddressBook('AddressBook.aspx?reqType=Ship')"/>
function ShowAddressBook(url)
{
window.showModalDialog(url,null,"dialogHeight:480px;dialogWidth:760px;edge:Raised;center:Yes; help:No;resizable:No;status:No;");
}
Det fungerar om jag bara gör en länk
ex:
<a href="default.aspx">tttt</a>
Då öppnas den i rätt fönster,
men så fort jag använder mig av en knapp eller dyl så fungerar det inte.
ex
<asp:ButtonField Text="Select Address" ButtonType="Image" ImageUrl="~/Images/actionbuttons/select.png" CommandName="selectAddress"/>
C#
protected void gvAddressBook_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("selectAddress"))
{
System.Text.StringBuilder JScript = new System.Text.StringBuilder("");
JScript.Append("<SCRIPT language='JavaScript' type='text/javascript'>" + System.Environment.NewLine);
JScript.Append("<!--" + System.Environment.NewLine);
JScript.Append("window.returnValue = new Array('Test1','Test');" + System.Environment.NewLine);
JScript.Append("window.close();" + System.Environment.NewLine);
JScript.Append("// -->" + System.Environment.NewLine);
JScript.Append("</" + "SCRIPT>");
Page.RegisterClientScriptBlock("closeWindow", JScript.ToString());
}
}
Den kör alltså close scriptet, men det är det nya fönstret som poppas upp när man klickar på knappen som stängs, allstå inte modalen.
ex hur det fungerar idag:
Klick på länk i startsidan --> en modal öppnas.
När man gjort saker i modalen och ex vill stänga den, klicka på knappen close, då öppnas ett nytt fönster som stängs direkt via window.close() --> man är tillbaka till modalen.
jag vill ju att modalen stängs och att man är tillbaka till startsidan.
Peter SMedlem sedan dec. 20025 483 inlägg Visar nedanstående exempel på vad du vill åstadkomma?
<script>
// Huvudsidan (foo.html)
function f(){
window.showModalDialog("bar.html");
}
</script>
<a href="javascript:void(f())">Open</a>
// Modal-fönstret (bar.html)
<script>
var s = null;
function ow(){
var win = window.open("about:blank","","height=100,width=100");
with (win.document){
open();
write("<script>window.opener['s'] = 1; window.close();<\/script>");
close();
}
window.close();
}
</script>
<form>
<input type="button" value="Open (det nya fönstret och detta stängs omedelbart)" onclick="ow()">
</form>
BjurisMedlem sedan juli 2001514 inlägg Nix.
Jag vill inte att modalfönstret öppnar ett nytt fönster som den gör idag, utan den skall helt enkelt stänga sig när man klickar på Close och återgå till fönstret som öppnade modalen.
Peter SMedlem sedan dec. 20025 483 inlägg
Bjuris skrev:
Klick på länk i startsidan --> en modal öppnas.
När man gjort saker i modalen och ex vill stänga den, klicka på knappen close, då öppnas ett nytt fönster som stängs direkt via window.close() --> man är tillbaka till modalen.
När modal-fönstret öppnats, finns det en "Close"-knapp i dokumentet. Vid klick på den skall fönstret stängas?
<input type="button" value="Close" onclick="window.close()">
BjurisMedlem sedan juli 2001514 inlägg Detfungerar inte.
Sen så gäller det inte bara close knappen, utan det öppnas ett nytt fönster för alla knapparna som finns i min modal.
Peter SMedlem sedan dec. 20025 483 inlägg Ok, kan du skriva ihop ett litet exempel liknande det i inlägg #6 som visar på problemet? Det skulle spara tid åt alla. ;)
BjurisMedlem sedan juli 2001514 inlägg Ok.
Om vi backar några steg.
Jag har alltså en GridView (ASP.NET 2.0) i denna GridView så finns det lite rader med addressuppgifter.
Jag skapar ochså två stycken knappar, varav den ena har ett commandname och den andra har ett inbyggt commandname som visar en detailView.
Knappar:
<asp:CommandField ShowSelectButton="True" buttontype="Image" SelectImageUrl="~/Images/actionbuttons/info.png" SelectText="Details">
</asp:CommandField>
<asp:ButtonField Text="Select Address" ButtonType="Image" ImageUrl="~/Images/actionbuttons/select.png" CommandName="selectAddress"/>
Med mitt commandName så skapar jag följande javaScript och i nuläget så skall den bara stänga modalfönstret.(senare så skall den populera Window.Opener)
protected void gvAddressBook_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("selectAddress"))
{
System.Text.StringBuilder JScript = new System.Text.StringBuilder("");
JScript.Append("<SCRIPT language='JavaScript' type='text/javascript'>" + System.Environment.NewLine);
JScript.Append("<!--" + System.Environment.NewLine);
JScript.Append("window.returnValue = new Array('Test1','Test');" + System.Environment.NewLine);
JScript.Append("window.close();" + System.Environment.NewLine);
JScript.Append("// -->" + System.Environment.NewLine);
JScript.Append("</" + "SCRIPT>");
Page.RegisterClientScriptBlock("closeWindow", JScript.ToString());
}
}
När jag klickar på knappen med commandName så öppnas ett nytt fönster upp och stängs omedelbart.
På min knapp som inte har något commandName så öppnas ett nytt fönster upp med en detailView.
Ingen av dessa knappar skall öppna upp ett nytt fönster.
Som sagt så har jag satt en base target men utan framgång.
Kör jag sidan i ett riktigt fönster så sker det som jag vill skall ske, dvs DetailView presenteras samt om jag vill stänga så fungerar det också.
Peter SMedlem sedan dec. 20025 483 inlägg Om vi tittar på denna rad som du säger öppnar ett oefterfrågat fönster:
<asp:ButtonField Text="Select Address" ButtonType="Image" ImageUrl="~/Images/actionbuttons/select.png" CommandName="selectAddress"/>
Min fråga är: hur i hela Hälsingland kan den koden öppna ett nytt fönster? Vad jag kan se i din kod ovan finns det inte en enda window.open()/.showModalDialog()-rad (om vi bortser från den i ditt tredje inlägg som faktiskt skall vara där).
BjurisMedlem sedan juli 2001514 inlägg Ja jag undrar det samma.
Det konstiga är som sagt att det fungerar om man inte använder modaldialog...
Peter SMedlem sedan dec. 20025 483 inlägg Om vi tittar på ditt tredje inlägg så kan vi se HTML-koden för hur du öppnar modal-fönstret. So far, so good. Problemet ligger ju i AddressBook.aspx, så hur ser HTML-koden (såsom den skickas till klienten) ut där?
BjurisMedlem sedan juli 2001514 inlägg Efter mycket huvudbry så gjorde jag om den till en vanlig popup, nackdelen är ju att man kommer åt "stora fönstret" medans popupen finns, men det fungerar i varje fall.