Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 571
  • Last Modified:

Asp.Net Drop Down List Datasource

HI

I have a details view that contains a dropdown list

<asp:DropDownList ID="ddlReasons1" runat="server" AppendDataBoundItems="True" DataSourceID="dsSusReasonEdit" DataTextField="REASONFORSUSPENSION"  ForeColor="Black" DataValueField="REASONFORSUSPENSIONID"  SelectedValue='<%# Bind("REASONFORSUSPENSIONID", "{0}") %>' Enabled="False"> 
                                                 <asp:ListItem>Choose Reason</asp:ListItem> 
                                             </asp:DropDownList>

Open in new window


The record set that runs the detailsview is set depending on an id that is set when clicking on an item in a formview.


Because my dropdown list  is databound  (   SelectedValue='<%# Bind("REASONFORSUSPENSIONID", "{0}") %>' )  I get an error if there is no results to bind to  and the REASONFORSUSPENSIONID is NULL

What's the easiest way to dynamically set the dropdown list binding?  

Basically I want to say that if the ID is 25 then databind the dropdown list.
0
Ed
Asked:
Ed
  • 2
  • 2
2 Solutions
 
David Johnson, CD, MVPOwnerCommented:
you have to check for a null return and if null then do not display the drop down list
0
 
MlandaTCommented:
In cases like this, I think it's better to move your code into the code-behind. That way, you can seperate some of this logic (i.e. figuring out what to do if the value is null) from your actual HTML markup. Something along the lines of:
If IsDBNull(myObject("REASONFORSUSPENSIONID")) Then
     ddlReasons1.SelectedIndex = 0 'your default value
Else
     ddlReasons1.SelectedValue = myObject("REASONFORSUSPENSIONID")
End If

Open in new window

If you really need to do this in the ASPX page, then try something like (using an inliine Iif):
SelectedValue='<%# Iif(IsDBNull(Eval("REASONFORSUSPENSIONID")), "Choose Reason", Eval("REASONFORSUSPENSIONID")) %>'

Open in new window

PS: I havent tested these snippets, so they might need some tweaking, but I hope you get the idea.
0
 
EdAuthor Commented:
Thanks, I've tried this but still getting the same error

My code


<EditItemTemplate>
                                            <asp:DropDownList ID="ddlReasons1" runat="server" AppendDataBoundItems="True" DataSourceID="dsSusReasonEdit" DataTextField="REASONFORSUSPENSION"  ForeColor="Black" DataValueField="REASONFORSUSPENSIONID"  SelectedValue='<%# Bind("REASONFORSUSPENSIONID", "{0}") %>' Enabled="False">
                                                <asp:ListItem Value="0">Choose Reason</asp:ListItem>
                                            </asp:DropDownList>
                                            <asp:SqlDataSource ID="dsSusReasonEdit" runat="server" ConnectionString="<%$ ConnectionStrings:IRISConnectionString %>" SelectCommand="SELECT [REASONFORSUSPENSIONID], [REASONFORSUSPENSION], [TYPE] FROM [ID_REASONFORSUSPENSIONID]"></asp:SqlDataSource>
                                        </EditItemTemplate>



 
Dim ddl As DropDownList = CType(dvEvent.FindControl("ddlReasons1"), DropDownList)



        If IsDBNull(dvEvent.FindControl("REASONFORSUSPENSIONID")) Then
            ddl.SelectedIndex = 0
        Else
            ddl.SelectedValue = dvEvent.FindControl("REASONFORSUSPENSIONID").ToString
        End If

Open in new window

0
 
EdAuthor Commented:
have tried this on dvEvent_databound

     Dim ddl As DropDownList

        ddl = DirectCast(dvEvent.FindControl("ddlsusReason"), DropDownList)

        If DirectCast(dvEvent.FindControl("susReason"), Label) Is Nothing Then

            ddl.SelectedIndex = -1

        End If
0
 
David Johnson, CD, MVPOwnerCommented:
what I'd do is test if user is suspended if not then don't display the drop down.. if user is suspended then display the drop down.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now