[ Simke @ 12.01.2004. 03:58 ] @
Imam ASP.NET aplikaciju, i kada pokusam da pokazem message box standardnim metodom dobijem sledecu poruku:

It is invalid to show a modal dialog or form when the application is not running in UserInteractive mode. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.

Kod se nalazi u OnClick proceduri:

Code:

Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSave.Click
        'Check if product group has been selected
        If Me.cboGCode.SelectedValue = "" Then
            MsgBox("Please select group for this product before saving.", MsgBoxStyle.Exclamation, "Select Product Group")
            Exit Sub
        End If

        Me.CoreProduct_InsertUpdate()
        Session("IsNew") = "TRUE"
        CoreProduct_Clear()
    End Sub


Trazio sam resenje na google, ali nisam nasao nista konkretno. Posto se ASP.NET aplikacija izvrsava na serveru, onda i da ne daje gresku taj msgbox bi se pokazao na serveru. Koliko sam shvatio, treba da se koristi javascript ili vbscript za ovakve stvari. Gde da stavim vbscript code i kako da ga povezem sa aplikacijom?
Ako bi neko mogao da mi da neki primer bio bih jako zahvalan.
[ mmix @ 12.01.2004. 11:21 ] @
Ok, na samom dizajneru form-a, pređi direktno u HTML editor i pre </HEAD> ubaci sledeći kod (kod je za IE, neće raditi na Netscape-u bez ozbiljne dorade, ali je i tamo moguće, ovo sam dao čisto da skontaš princip):

Code:

<script event="onsubmit" for="Form1" language="javascript">
<!--
    if (document.all.cboGCode.value == "")
    {
        alert("Please select group for this product before saving.");
        event.returnValue = false;    // cancel event
    }
-->
</script>


Međutim, ovo te ne lišava potrebe da na serveru (u eventu koji si dao u poruci) proveriš stanje vrednosti cboGCode pre upotrebe, samo izbaci poziv ka MsgBox-u. Problem je što JavaScript može lako da se zaobiđe, ili zlonamerno (pokušajem da se aplikacija razbuca preskakanjem client side koda i puštanjem nedozvoljenih vrednosti) ili "slučajno" kod paranoica koji isključuju javascript. U svakom slučaju, proveravaj i server side i slobodno tretiraj taj neispravan ulaz kao "hostile".

I meni je ova funkcionalnost trebala više puta, međutim, sve bi ovo bilo rešeno da "nedovršeni" RequiredFieldValidator ima "Display as MsgBox". Imati msgbox na raspolaganju samo za SVE ili NIJEDAN validator (preko ValidationSummary) je poprilično limitirajuće.

Pozdrav
[ Simke @ 12.01.2004. 20:16 ] @
Hvala puno, radi tacno kako mi treba.
A sto se tice Netscape, nije ni bitno jer se aplikacija koristi na intranetu gde svi korisnici koriste IE kao browser.