Solved

trying to avoid System.ArgumentOutOfRangeException dropdown list in a datagrid

Posted on 2006-06-22
3
865 Views
Last Modified: 2007-12-19
hello dear experts,
i have  a problem with a dropdown list in a datagrid, basically i am trying to avoid the:
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: value
Source Error:
Line 67:                         
Line 68:                         BOMDataGrid.DataSource = DS.Tables["BOM"];
Line 69:                         BOMDataGrid.DataBind();      ----> marked red

after readings some replies here i added the GetSelectedValue function.

<asp:datagrid id="BOMDataGrid" runat="server" AutoGenerateColumns="False" OnEditCommand="Edit"             OnCancelCommand="Cancel" OnUpdateCommand="Update" OnDeleteCommand="Delete">
......
         <asp:DropDownList id="MaterialDDL" runat="server" DataSource='<%# MaterialDT%>' DataTextField="Material" DataValueField="ID" SelectedValue='<%# GetSelectedValue(DataBinder.Eval(Container, "DataItem.MaterialID"))%>'>
         </asp:DropDownList>

public String GetSelectedValue(object selVal)
{      
     if (selVal.Equals("") || selVal==null)
         return null;
     else
         return selVal.ToString();                              
}

i have a:
public DataTable MaterialDT; in the .cs

and am calling GetData() to populate and bind the datagrid and to poulate the datatable for the dropdownlist:MaterialDT.


            void GetData()
            {                  
                        SqlCommand dataCommand = new SqlCommand();
                        SqlConnection dataConnection = new SqlConnection();
                        dataConnection.ConnectionString = dbConn;
                        dataCommand.Connection = dataConnection;                  
                        
                        dataCommand.CommandText = "GetMaterials";
                        dataCommand.CommandType = System.Data.CommandType.StoredProcedure;      
                  
                        SqlDataAdapter MaterialDA = new SqlDataAdapter(dataCommand);
                        MaterialDA.Fill(DS,"Material");

                        MaterialDT = DS.Tables["Material"];
                        
                        SqlParameter reportIDprm;
                        reportIDprm= new SqlParameter("@reportID",1);                  
                        dataCommand.Parameters.Add(reportIDprm);

                        dataCommand.CommandText = "GetBOM";
                        dataCommand.CommandType = System.Data.CommandType.StoredProcedure;      

                        BOMDA = new SqlDataAdapter(dataCommand);
                        BOMDA.Fill(DS,"BOM");
                        
                        BOMDataGrid.DataSource = DS.Tables["BOM"];
                        BOMDataGrid.DataBind();      <-----------------------error here                  
                  /*
                  }
                  catch(ArgumentOutOfRangeException OutOfRange)
                  {
                        Label1.Text = OutOfRange.Message;
                  }
                  catch(Exception e)
                  {
                        Label1.Text = e.Message;
                  }
                                         */
            }
but am still getting the error on pressing the edit button in the datagrid on items that were added with the add material button:
which only has this at its end:

BOMDataGrid.EditItemIndex = -1;
GetData();      

hope you might help, 10x in advance.


 

0
Comment
Question by:stephen_rota
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
GENTP earned 500 total points
Comment Utility
Have you tried changing from seting the edititemindex from -1 to setting it to 0?
0
 

Author Comment

by:stephen_rota
Comment Utility
no i did not try that one.  My first impression was that the datagrid (i.e. due to the editItemIndex as you are noting) was causing the outofrange exception. but then on following some posts on your site I got the impression (and continued to convince myself of this after some testing) that the dropdown list was causing that excepiton since there were no itmes selected (something on the same argument as what happens with the HTML select or raedio buttons i.e. there is no value for the dropdown unless anything is selected) hence I introduced the GetSelectedValue function. However I will try setting edititemindex to 0 tomorrow morniing and reply with the outcome. -1 resets the datagrid to a no edit mode right? 10x.
0
 

Author Comment

by:stephen_rota
Comment Utility
the prob was when have an unselected dropdown. solved this by defaulting the dropdown list to a selection of none. i am getting the value, text from a DB so i just added an entry of id: -1, desc: none. 10x.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Here we come across an interesting topic of coding guidelines while designing automation test scripts. The scope of this article will not be limited to QTP but to an overall extent of using VB Scripting for automation projects. Introduction Now…
Although it can be difficult to imagine, someday your child will have a career of his or her own. He or she will likely start a family, buy a home and start having their own children. So, while being a kid is still extremely important, it’s also …
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

728 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now