Search

Custom Search

Subscribe via email

Enter your email address:

Delivered by FeedBurner

Tuesday, October 19, 2010

Choosing top row in DDL as NULL from SQLDATASOURCE

SELECT     NULL AS Autokey
UNION ALL
SELECT DISTINCT Autokey
FROM         Data
http://forums.asp.net/p/1561253/3864962.aspx
---------
however above method might not work in integer fields.
use http://imar.spaanjaars.com/281/how-do-i-add-an-additional-item-to-a-databound-dropdownlist-control-in-aspnet
In ASP.NET 2.0 and onwards things are much easier. The DropDownList control and other list controls now have a AppendDataBoundItems (7) property. With this property set to true, a call to DataBind leaves all existing items in the list. That allows you to add the extra items declaratively in the markup:
<asp:DropDownList ID="DropDownList1" runat="server"
AppendDataBoundItems="true">
<asp:ListItem Value="*">Please select a country</asp:ListItem>
</asp:DropDownList>
That's it. No more messing around with code in the code behind to add the item. Just set AppendDataBoundItems to true and the manually added item stays where it was.
Make sure there is a * in "value" above on listitem.
--------
The above method does not work in whole unless accompanied by converting to varchar of any int value fields in sqldatasource. I converted them all to varchar to be on safe side.
SelectCommand="SELECT CONVERT(VARCHAR, [Autokey], 1) AS 'Autokey', CONVERT(VARCHAR,[Province], 1) AS 'Province', CONVERT(VARCHAR, [District], 1) AS 'District', CONVERT(VARCHAR, [Hospital], 1) AS 'Hospital', CONVERT(VARCHAR, [Caterer_Name], 1) AS 'Caterer_Name', CONVERT(VARCHAR, [Date_of_Entry], 1) AS 'Date_of_Entry', CONVERT(VARCHAR, [No_of_Daigs], 1) AS 'No_of_Daigs', CONVERT(VARCHAR, [Food_Item], 1) AS 'Food_Item', CONVERT(VARCHAR, [No_of_Rotis], 1) AS 'No_of_Rotis', CONVERT(VARCHAR, [No_of_Bene_Male], 1) AS No_of_Bene_Male, CONVERT(VARCHAR, [No_of_Bene_Female], 1) AS No_of_Bene_Female, CONVERT(VARCHAR, [Daily_Cost_Per_Person], 1) AS Daily_Cost_Per_Person, CONVERT(VARCHAR, [Acc_Exp], 1) AS Acc_Exp FROM [Data]"
also make sure in select statement of sqldatasource of the individual dropdownlist, you use the t-sql as such in order to eliminate all possible nulls and get all distinct values
SELECT
        CONVERT(VARCHAR, [Autokey], 1) AS 'Autokey',
        CONVERT(VARCHAR, [Province], 1) AS 'Province',
        CONVERT(VARCHAR, [District], 1) AS 'District',
        CONVERT(VARCHAR, [Hospital], 1) AS 'Hospital',
        CONVERT(VARCHAR,
        (CASE
            WHEN Caterer_Name IS NULL THEN
            (SELECT TOP 1 '' AS Caterer_Name FROM Data)
            ELSE Caterer_Name
        END), 1) AS Caterer_Name,
        CONVERT(VARCHAR, [Date_of_Entry], 1) AS 'Date_of_Entry',
        CONVERT(VARCHAR, [No_of_Daigs], 1) AS 'No_of_Daigs',
        CONVERT(VARCHAR, [Food_Item], 1) AS 'Food_Item',
        CONVERT(VARCHAR, [No_of_Rotis], 1) AS 'No_of_Rotis',
        CONVERT(VARCHAR, [No_of_Bene_Male], 1) AS No_of_Bene_Male,
        CONVERT(VARCHAR, [No_of_Bene_Female], 1) AS No_of_Bene_Female,
        CONVERT(VARCHAR, [Daily_Cost_Per_Person], 1) AS Daily_Cost_Per_Person,
        CONVERT(VARCHAR, [Acc_Exp], 1) AS Acc_Exp
FROM [Data]
http://forums.asp.net/t/1250459.aspx
The key code here is
CONVERT(VARCHAR,
        (CASE
            WHEN Caterer_Name IS NULL THEN
            (SELECT TOP 1 ' ' AS Caterer_Name FROM Data)
            ELSE Caterer_Name
        END), 1) AS Caterer_Name,
this converts int to string as well as selects null as a value
full example
SELECT
        CONVERT(VARCHAR,
        (CASE
            WHEN Autokey IS NULL THEN
            (SELECT TOP 1 '' AS Autokey FROM Data)
            ELSE Autokey
        END), 1) AS Autokey,
        CONVERT(VARCHAR,
        (CASE
            WHEN Province IS NULL THEN
            (SELECT TOP 1 '' AS Province FROM Data)
            ELSE Province
        END), 1) AS Province,
        CONVERT(VARCHAR,
        (CASE
            WHEN District IS NULL THEN
            (SELECT TOP 1 '' AS District FROM Data)
            ELSE District
        END), 1) AS District,
        CONVERT(VARCHAR,
        (CASE
            WHEN Hospital IS NULL THEN
            (SELECT TOP 1 '' AS Hospital FROM Data)
            ELSE Hospital
        END), 1) AS Hospital,
        CONVERT(VARCHAR,
        (CASE
            WHEN Caterer_Name IS NULL THEN
            (SELECT TOP 1 '' AS Caterer_Name FROM Data)
            ELSE Caterer_Name
        END), 1) AS Caterer_Name,
        CONVERT(VARCHAR,
        (CASE
            WHEN Date_of_Entry IS NULL THEN
            (SELECT TOP 1 '' AS Date_of_Entry FROM Data)
            ELSE Date_of_Entry
        END), 1) AS Date_of_Entry,
        CONVERT(VARCHAR,
        (CASE
            WHEN No_of_Daigs IS NULL THEN
            (SELECT TOP 1 '' AS No_of_Daigs FROM Data)
            ELSE No_of_Daigs
        END), 1) AS No_of_Daigs,
        CONVERT(VARCHAR,
        (CASE
            WHEN Food_Item IS NULL THEN
            (SELECT TOP 1 '' AS Food_Item FROM Data)
            ELSE Food_Item
        END), 1) AS Food_Item,
        CONVERT(VARCHAR,
        (CASE
            WHEN No_of_Rotis IS NULL THEN
            (SELECT TOP 1 '' AS No_of_Rotis FROM Data)
            ELSE No_of_Rotis
        END), 1) AS No_of_Rotis,
        CONVERT(VARCHAR,
        (CASE
            WHEN No_of_Bene_Male IS NULL THEN
            (SELECT TOP 1 '' AS No_of_Bene_Male FROM Data)
            ELSE No_of_Bene_Male
        END), 1) AS No_of_Bene_Male,
        CONVERT(VARCHAR,
        (CASE
            WHEN No_of_Bene_Female IS NULL THEN
            (SELECT TOP 1 '' AS No_of_Bene_Female FROM Data)
            ELSE No_of_Bene_Female
        END), 1) AS No_of_Bene_Female,
        CONVERT(VARCHAR,
        (CASE
            WHEN Daily_Cost_Per_Person IS NULL THEN
            (SELECT TOP 1 '' AS Daily_Cost_Per_Person FROM Data)
            ELSE Daily_Cost_Per_Person
        END), 1) AS Daily_Cost_Per_Person,
        CONVERT(VARCHAR,
        (CASE
            WHEN Acc_Exp IS NULL THEN
            (SELECT TOP 1 '' AS Acc_Exp FROM Data)
            ELSE Acc_Exp
        END), 1) AS Acc_Exp
FROM Data
--------------
Formview stuck on first record even when clicking edit button from gridview do:
  Protected Sub BTN_GV_Details_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        FormView1.ChangeMode(FormViewMode.ReadOnly)
        FormView1.ChangeMode(FormViewMode.Edit)
    End Sub
basically change mode of formview to readonly and then to edit. make sure this is implemented on the select button of gridview NOT the edit button, so that selectcommand of sqldatasource is executed first.
also you need to make sure that commandname = "select" on both edit and select buttons of the gridview.
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
        AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Autokey"
        DataSourceID="SqlDataSource1">
        <Columns>
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <asp:LinkButton ID="GV_Edit_button" runat="server" CausesValidation="False"
                        OnClick="GV_Edit_button_Click" Text="Edit" CommandName="Select"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField >
               <ItemTemplate>
                  <asp:LinkButton ID="GV_Details_button" runat="server" Text="Details..."
                       onclick="GV_Details_button_Click" CommandName="Select"></asp:LinkButton>
               </ItemTemplate>
-------------
if error such as 'FV_Edit_DDL_Caterer_Name' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value

this means null value is not being found in the supporting table. no need to add a null row in the supporting table. what you need to do instead is put a - in the listitem of the dropdownlist in edititemtemplate and insertitemtemplate of the formview. the reason we are putting value "-" in our case is because we are taking - as null from the sqldatasource select statement. in normal instances you would take "" to select null value.
e.g
Caterer_Name:&nbsp;<asp:DropDownList ID="FV_Edit_DDL_Caterer_Name" runat="server" DataSourceID="SqlDataSource1_Caterer"
                    DataTextField="Caterer_Name" DataValueField="Caterer_Name" SelectedValue='<%# Bind("Caterer_Name") %>' AppendDataBoundItems="true">
                    <asp:ListItem Value="-"></asp:ListItem>
                </asp:DropDownList>&nbsp;
------
set NULLDISPLAYTEXT property of the column in gridview to dash - to display dashes for nulls.

No comments:

Post a Comment

Labels

.ico (1) acunetix (1) adding controls dynamically (1) adding list item programatically (1) adding parameters (1) aligning (2) aligning buttons (1) and Bind() can only be used in the context (1) anonymous access (1) appending static dropdownlist items (1) asciibetical sort (1) asp.net (101) assembly (1) asterisk (1) auto increment (1) autopostback (1) autosize (1) aztech (5) behavior (1) boundfield (1) browser tab icon (1) busybox (1) bypass proxy (1) calculate totals in reportviewer (2) cangrow (1) cascading style sheets (1) case (1) CDbl (1) changemode (1) checkbox (1) columns (1) comments (1) comparing all values (1) comparing integer values (2) comparison (2) conditional IIF (1) confirmation box on delete (1) connection string (1) control (1) controlID (1) controlparameter (1) convert (1) convert format of currency or float or 0.0000 to 0.00 (1) convert image to pixels (1) converting dates (2) css (1) ctype (1) culture (1) currency (1) current date (1) current ports (1) data typeconversion (1) database (2) databind (1) databound (5) dataformatstring (1) date column (1) date format (3) date sort in gridview (1) db_datareader (1) db_datawriter (1) dd MMM yyyy (1) defaultmode (1) delete button (1) deleting (1) deleting rows (1) deploying website to IIS (3) deployment error (1) deployment to IIS (4) detecting formview move (3) difference between filterexpression and selectexpression (2) difference between publish and build in visual studio (1) directory security (1) display error on no data in reportviewer (2) distinct (1) DLL (1) DMZ (1) double value (1) double quotes in javascript (1) download reportviewer (5) download visual web developer (3) drill down (1) drilldown (1) drilldown dropdownlist (1) dropdownlist (4) dropdownlist showing double values on postback (2) DSL 605EU (5) dynamic DNS (1) dyndns (1) e.values (1) edit mode (1) embedded images (1) emptydatatemplate (1) enableclientscript (1) enableviewstate (1) error during selection in filter of non matching values (1) Eval() (1) event manager (1) excel to sql server (2) executiontime (1) expression (2) F5 key refresh (1) failed to load viewstate (1) favicon (1) favicon.ico (1) feedback (1) feedback module (1) field expression (1) file permissions (1) filter (3) filterexpression (2) filterparameters (1) findcontrol (1) firefox (1) firefox password problem (1) firewall (1) float (1) focus (1) font (1) footerrow (1) format currency (1) formatting date in reportviewer (1) formview (11) formviewmode (2) freeze screen (1) global ip (2) globals (1) gotreportviewer (1) grand total (1) gridview (18) gridview labels (3) handling dates (6) handling nulls (5) html (1) htmlencode (1) httphandler (1) icon in address bar (1) icon in browser (1) IIS (6) IIS 5 (2) IIS 7 (1) IIS admin tool (1) IIS error (1) iis installation (1) IIS manager (3) IIS personalization (1) IIS pool (3) IIS setup (1) IIS Unexpected error 0x8ffe2740 (1) image control (1) image sizing in reportviewer (1) importing html into excel (1) index was out of range (1) insert (4) insert image in reportviewer (1) inserting (1) insertparameters (1) integer (1) integer column (2) intellisense (1) iteminserted (1) iteminserting (2) itemupdating (2) javascript (6) javascript and smartnavigation (1) javascript intellisense (1) label (1) left align pagerstyle (1) listitem (1) live ip (2) load (1) maintain cursor on field after postback (1) maintainscrollbackposition (2) managing deletion (1) microsoft (2) modechanged (1) modechanging (1) money column (1) money field (1) monitor IIS errors (1) monitoring ports (1) ms excel (1) ms word (1) multiple values shown (1) natural sort (1) network service (3) newline character in reportviewer textbox (1) newmode (1) nirsoft (1) no data (1) non focus (1) non null (1) norows property (1) obfuscate (1) obfuscator (1) objectdatasource (3) onclientclick (1) onfocus (3) onkeyup (1) page expiry (1) page margins (1) page_load (1) pageindex (1) panel (1) parameterized query (1) pdf (1) permissions (2) port forwarding (2) port scanner (1) ports (2) postback losing focus problem (1) pre-compile tasks visual studio (1) prevent insert on refresh (1) prevent multiple records being added (1) preventing doubleclick (1) preventing multiple clicks (1) primary key (1) primary key column (1) profile (2) programming (1) protect asp.net code (2) publickeytoken (1) publish to DLL (2) publish website (2) putting blanks in formview (1) reboot router (1) referencing values of selectcommand (1) register asp.net (1) registerstartupscript (2) remove focus (1) removing a textbox (2) report header (1) reportaddin.msi (2) reporting services (3) reportviewer (11) reportviewer formatting A4 size PDF (1) reportviewer formatting for A4 size PDF (1) reportviewer header scroll problem (1) reportviewer showing header (1) reportviewer showing header constantly (1) reset autokeys (1) restart router (1) router (6) router interface (1) rows (1) schema (1) scriptmanager (1) scroll function (1) scroll to window location with javascript (1) scrolling scrollbar with javascript (1) selectcommand (1) selectedindexchanged (1) selectedrowstyle (1) selectedvalue (1) selectexpression (1) selecting control inside gridview (1) selecting null as 0 (1) selecting null as zero (1) selecting nulls (3) selecting row (1) selecting totals in t-sql using subquery (2) selecting week (1) server application unavailable (1) session state (2) session timeout (1) set focus on control on page load (1) setting tab order of controls (1) setup firewall (1) showtime (2) single quotes in javascript (1) sizing property (1) skype port 80 conflict (1) smartnavigation (3) smartnavigation errors (1) smartnavigation problems (2) smartnavigation solutions (1) sorting (1) sql server (47) sqldatasource (9) SSRS (5) start primary key column from 1 (1) static ip (1) string value (1) stylesheet (1) subquery (2) summary (1) system.web (1) t-sql (22) tab index (2) tab order (2) table (1) table of contents (1) table wrap (1) tables (1) tcp port (1) TD (1) telnet (1) templatefields (2) ternary IIF operator (2) textbox (4) textchanged (1) timeout (1) top row (1) totals in gridview footer (2) TR-068 WAN Access (1) trimming values (1) truncate table (1) try catch block (1) updating (1) validation (1) validationsummary (1) vb (76) version (1) viewstate (1) viewstate error (1) virtual directory (1) visiblefalse (1) visual studio 2008 (4) visual web developer (5) visual web developer 2005 (3) vwd (2) watch activity (1) watermark (1) web tunnel proxy (1) web.config (4) webforms (1) webserver (1) Website Vulnerabilities (1) where clause (1) windows CD (1) windows server (3) windows vista (2) windows xp (1) wrap line (2) wrapping text in reportviewer textbox (1) xp (2) XPath() (1)