ASP.NET : Displaying an alert from C# code-behind
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>'
Comments
-
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 over 12 yearsSweet, 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 over 12 yearsGlad to help! Have a nice day!