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.