Solved

Asp.Net Drop Down List Datasource

Posted on 2015-01-12
7
535 Views
Last Modified: 2015-01-28
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
Comment
Question by:Ed
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
7 Comments
 
LVL 82

Expert Comment

by:David Johnson, CD, MVP
ID: 40545884
you have to check for a null return and if null then do not display the drop down list
0
 
LVL 30

Accepted Solution

by:
MlandaT earned 250 total points
ID: 40546019
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
 

Author Comment

by:Ed
ID: 40548516
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
 

Author Comment

by:Ed
ID: 40548764
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
 
LVL 82

Assisted Solution

by:David Johnson, CD, MVP
David Johnson, CD, MVP earned 250 total points
ID: 40569298
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

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When the s#!t hits the fan, you don’t have time to look up who’s on call, draft emails, call collaborators, or send text messages. An instant chat window is definitely the way to go, especially one like HipChat. HipChat is a true business app. An…
When it comes to security, close monitoring is a must. According to WhiteHat Security annual report, a substantial number of all web applications are vulnerable always. Monitis offers a new product - fully-featured Website security monitoring and pr…
Viewers will get an overview of the benefits and risks of using Bitcoin to accept payments. What Bitcoin is: Legality: Risks: Benefits: Which businesses are best suited?: Other things you should know: How to get started:
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question