ASP.NET : Displaying an alert from C# code-behind

79,650

Solution 1

Description

Assuming i understand your question.

You can use the ScriptManager to show a javascript alert message.

Sample

protected void Page_Load(object sender, EventArgs e)
{
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), 
          "err_msg", 
          "alert('Dispatch assignment saved, but you forgot to click Confirm or Cancel!)');",
          true);
}

More Information

Solution 2

private void MessageBox(string message,string title="title")
{
    ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), title,    "alert('" + message + "');", true);
}

It can be useful: http://www.codeproject.com/Questions/311503/How-to-use-javascript-alert-message-in-code-behind

Solution 3

If you want a single piece of client-side JavaScript to run when the page loads, you can register a startup script in your code-behind:

if(!ClientScript. IsStartupScriptRegistered(typeof(Page), "alert"))
  string script = "<script>";
  script += "alert('";
  script += "Dispatch assignment saved, but you forgot to click Confirm or Cancel!";
  script += "');";
  script += "</script>";
  ClientScript.RegisterStartupScript(typeof(Page), "alert", script); 
}

ASP.NET will take care of putting the <script> in your HTML and calling it when the page is loaded.

Solution 4

Your asp:ListBox must have AutoPostBack="True" if the selected_index_changed event should be raised by changing index.

for example

    <asp:ListBox ID="ListBox1" runat="server" 
        AutoPostBack="True" OnSelectedIndexChanged="selected_index_changed">
        <asp:ListItem>one</asp:ListItem>
        <asp:ListItem>two</asp:ListItem>
        <asp:ListItem>three</asp:ListItem>
    </asp:ListBox>'
Share:
79,650
SHeinema
Author by

SHeinema

Warm Body

Updated on July 05, 2022

Comments

  • SHeinema
    SHeinema almost 2 years

    I have an asp.net page with a c# code-behind. I am trying to have the code-behind display an 'alert' if the selected-index of a gridview object is changed without selecting 'confirm' or 'cancel'. The code for detecting if confirm or cancel was selected is working, however my message is never displayed. The 'Alert.Show" code was borrowed from: http://archive.devnewz.com/devnewz-3-20061129JavaScriptAlertShowmessagefromASPNETCodebehind.html .

    Alert.show works just fine when tested from the page_load(), for example, but not in my selected_index_changed method. Any idea why? Perhaps having to do with how Alert.Show() is implemented?

    if (ChangeAttemptedId && !IsSavedId)
    {
     Alert.Show("Dispatch assignment saved, but you forgot to click Confirm or Cancel!)");
    }
    

    ASP.NET CODE:

    <asp:Table ID="Table1" runat="server" CssClass="DefaultTable">
        <asp:TableRow runat="server">
            <asp:TableCell runat="server" Width="50%" VerticalAlign="Top" HorizontalAlign="Left">
                <asp:UpdatePanel ID="detailsUP" runat="server" UpdateMode="Always" ChildrenAsTriggers="True">
                    <ContentTemplate>
                        <!--
                        <asp:Label ID="label1" runat="server" Text="Car To Dispatch: " CssClass="DefaultLabel"></asp:Label>
                        <asp:DropDownList ID="CarsDDL" runat="server" DataSourceID="VehiclesEDS" DataMember="CarNum" DataTextField="CarNum" AppendDataBoundItems="True" Font-Bold="True">
                            <asp:ListItem Selected="True" Text="-"></asp:ListItem>
                        </asp:DropDownList>
                        -->
                        <asp:DetailsView ID="RideToAssignDV" runat="server" Height="400px" 
                            Width="400px" AutoGenerateRows="False" 
                            BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" 
                            CellPadding="3" GridLines="Vertical">
                            <AlternatingRowStyle BackColor="#DCDCDC" />
                            <EditRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
                            <Fields>
                                <asp:BoundField DataField="AssignedCar" HeaderText="Car" 
                                    SortExpression="AssignedCar" NullDisplayText="---" />            
                                <asp:BoundField DataField="Name" HeaderText="Name" 
                                    SortExpression="Name" NullDisplayText="---" />
                                <asp:BoundField DataField="Phone" HeaderText="Phone" 
                                    SortExpression="Phone" NullDisplayText="---" />
                                <asp:BoundField DataField="NumPatrons" HeaderText="Size" 
                                    SortExpression="NumPatrons" NullDisplayText="---" />                
                                <asp:BoundField DataField="PickupAddress" HeaderText="Pickup Address" 
                                    SortExpression="PickupAddress" NullDisplayText="---" />
                                <asp:BoundField DataField="DropoffAddress" HeaderText="Drop-Off Address" 
                                    SortExpression="DropoffAddress" NullDisplayText="---" />
                                <asp:BoundField DataField="CreatedBy" HeaderText="Created By" 
                                    SortExpression="CreatedBy" NullDisplayText="---" />
                                <asp:BoundField DataField="TimeOfCall" HeaderText="Call Time" 
                                    SortExpression="TimeOfCall" ReadOnly="True" NullDisplayText="---" />
                            </Fields>
                            <FooterStyle BackColor="#CCCCCC" ForeColor="Black" BorderStyle="Inset" BorderColor="#C6940D" HorizontalAlign="Center" Height="25px" />
                            <FooterTemplate>
                                <asp:Button ID="confirmButton" runat="server" Text="Confirm" ForeColor="Green" HorizontalAlign="Center" OnClick="confirmButton_Click"/>
                                <asp:Button ID="cancelButton" runat="server" Text="Cancel" ForeColor="Red" HorizontalAlign="Center" 
                                    OnClick="cancelButton_Click" OnClientClick="displayTopTen();" />
                            </FooterTemplate>
                            <HeaderStyle BackColor="#004812" Font-Bold="True" />
                            <PagerStyle BackColor="#999999" ForeColor="Black" />
                            <RowStyle BackColor="#EEEEEE" ForeColor="Black" />                            
                        </asp:DetailsView>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:TableCell>
    
            <asp:TableCell runat="server" Width="50%">
                <asp:UpdatePanel ID="mapUP" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <div id="map_canvas" style="height: 400px; width:400px;"></div>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </asp:TableCell>
        </asp:TableRow>
    </asp:Table>
    
    <br />
    <asp:Label ID="GV_Label1" runat="server" Text="Car To Dispatch: " CssClass="DefaultLabel"></asp:Label>
    
    <asp:UpdatePanel ID="SelectCarUP" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:GridView ID="VehiclesGridView" runat="server" AllowPaging="True" 
                AllowSorting="True" DataSourceID="VehiclesEDS" AutoGenerateColumns="False" 
                onselectedindexchanged="VehiclesGridView_SelectedIndexChanged" 
                BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" 
                CellPadding="3" GridLines="Vertical" ShowHeaderWhenEmpty="True" AutoPostBack="True">
                <AlternatingRowStyle BackColor="#DCDCDC" />
                <Columns>
                    <asp:TemplateField ShowHeader="False">
                        <ItemTemplate>
                            <asp:LinkButton ID="GVSelectButton" runat="server" CausesValidation="False" 
                                CommandName="Select" Text="Select"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="CarNum" HeaderText="Car" ReadOnly="True" 
                        SortExpression="CarNum" />
                    <asp:BoundField DataField="CurrPassengers" HeaderText="Passengers" 
                        ReadOnly="True" SortExpression="CurrPassengers" />
                    <asp:BoundField DataField="MaxPassengers" HeaderText="Capacity" ReadOnly="True" 
                        SortExpression="MaxPassengers" />
                    <asp:BoundField DataField="Status" HeaderText="Status" ReadOnly="True" 
                        SortExpression="Status" />
                    <asp:BoundField DataField="StartAdd" HeaderText="Pick-Up Address" 
                        ReadOnly="True" SortExpression="StartAdd" />
                    <asp:BoundField DataField="EndAdd" HeaderText="Drop-Off Address" 
                        ReadOnly="True" SortExpression="EndAdd" />
                    <asp:BoundField DataField="AvgRideTime" HeaderText="Avg. Ride Time" 
                        ReadOnly="True" SortExpression="AvgRideTime" />
                </Columns>
                <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
                <HeaderStyle BackColor="#004812" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
                <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
                <SelectedRowStyle BackColor="#C6940D" Font-Bold="True" ForeColor="White" />
                <SortedAscendingCellStyle BackColor="#F1F1F1" />
                <SortedAscendingHeaderStyle BackColor="#C6940D" />
                <SortedDescendingCellStyle BackColor="#CAC9C9" />
                <SortedDescendingHeaderStyle BackColor="#9F770B" />
            </asp:GridView>
        </ContentTemplate>
    </asp:UpdatePanel>
    
  • SHeinema
    SHeinema over 12 years
    Sweet, well I initially thought this wouldn't do it since I wanted the alert displayed only in the specific instance I described, but after thinking a second, changing the index causes a post-back and thus calls the page_load again.. so it works! Thank you. Still..it's odd that what I was using wasn't working.
  • dknaack
    dknaack over 12 years
    Glad to help! Have a nice day!