Home All Groups Group Topic Archive Search About
Author
29 Jun 2006 10:43 AM
André
Hi,

Is it possible to use the selectedValue of a dropdownlist to fill one of the
field of a detailsview?

I tried a lot of things, but still without succes. Here are the two methods
i tried with two different errors. It works only when i introduce directly a
value in "DefaultValue" (see below)

Thanks for help
André


1) first method:
asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
....
InsertCommand="INSERT INTO [pc] ([na], [ty],  [lok]) VALUES (?, ?, @lok)"
OldValuesParameterFormatString="original_{0}"
ProviderName="System.Data.OleDb"
<InsertParameters>
<asp:Parameter Name="na"  Type="String" />
<asp:Parameter Name="ty"   Type="String" />
</InsertParameters>
.....
Code-behind:
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
lok = DropDownList1.SelectedValue
SqlDataSource1.InsertParameters.Add("lok", lokl)
End Sub

This gives: No value given for one or more required parameters
----------------------------------------------------------------------------
-------------------------
2) second method
asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
....
InsertCommand="INSERT INTO [pc] ([na], [ty],  [lok]) VALUES (?, ?, @lok)"
OldValuesParameterFormatString="original_{0}"
ProviderName="System.Data.OleDb"
<InsertParameters>
<asp:Parameter Name="na"  Type="String" />
<asp:Parameter Name="ty"   Type="String" />
<asp:Parameter Name="lok"   Type="String" DefaultValue="<%=lok %>" />
</InsertParameters>
....

Code-behind:
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
lok = DropDownList1.SelectedValue
End Sub

This gives: You cannot add or change a record because a related record is
required in table 'lokl'
which means in fact that the value of the parameter is not passed!

It works when i give directly a value: <asp:Parameter Name="lok"
Type="String"  DefaultValue="1-45" />

Author
29 Jun 2006 11:23 AM
Alessandro Zifiglio
hi Andre, there is built in support for what you are trying to achieve. What
you need to use is ControlParameter in your InsertParameter just as in the
following example code.
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.controlparameter.aspx
Regards,
Alessandro Zifiglio
Show quote
"André" <s**@sdv.sd> ha scritto nel messaggio
news:%23HLkTj2mGHA.1208@TK2MSFTNGP03.phx.gbl...
> Hi,
>
> Is it possible to use the selectedValue of a dropdownlist to fill one of
> the field of a detailsview?
>
> I tried a lot of things, but still without succes. Here are the two
> methods
> i tried with two different errors. It works only when i introduce directly
> a
> value in "DefaultValue" (see below)
>
> Thanks for help
> André
>
>
> 1) first method:
> asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
> ...
> InsertCommand="INSERT INTO [pc] ([na], [ty],  [lok]) VALUES (?, ?, @lok)"
> OldValuesParameterFormatString="original_{0}"
> ProviderName="System.Data.OleDb"
> <InsertParameters>
> <asp:Parameter Name="na"  Type="String" />
> <asp:Parameter Name="ty"   Type="String" />
> </InsertParameters>
> ....
> Code-behind:
> Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
> ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
> lok = DropDownList1.SelectedValue
> SqlDataSource1.InsertParameters.Add("lok", lokl)
> End Sub
>
> This gives: No value given for one or more required parameters
> ----------------------------------------------------------------------------
> -------------------------
> 2) second method
> asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
> ...
> InsertCommand="INSERT INTO [pc] ([na], [ty],  [lok]) VALUES (?, ?, @lok)"
> OldValuesParameterFormatString="original_{0}"
> ProviderName="System.Data.OleDb"
> <InsertParameters>
> <asp:Parameter Name="na"  Type="String" />
> <asp:Parameter Name="ty"   Type="String" />
> <asp:Parameter Name="lok"   Type="String" DefaultValue="<%=lok %>" />
> </InsertParameters>
> ...
>
> Code-behind:
> Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
> ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
> lok = DropDownList1.SelectedValue
> End Sub
>
> This gives: You cannot add or change a record because a related record is
> required in table 'lokl'
> which means in fact that the value of the parameter is not passed!
>
> It works when i give directly a value: <asp:Parameter Name="lok"
> Type="String"  DefaultValue="1-45" />
>
>
>
Author
29 Jun 2006 1:14 PM
André
Thanks, it works now ...


"Alessandro Zifiglio" <AlessandroZifiglio @ -h-o-t-m-a-i-l-c-o-m> wrote in
message news:u%23KN352mGHA.5056@TK2MSFTNGP04.phx.gbl...
> hi Andre, there is built in support for what you are trying to achieve.
What
> you need to use is ControlParameter in your InsertParameter just as in the
> following example code.
>
http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.controlparameter.aspx
Show quote
> Regards,
> Alessandro Zifiglio
> "André" <s**@sdv.sd> ha scritto nel messaggio
> news:%23HLkTj2mGHA.1208@TK2MSFTNGP03.phx.gbl...
> > Hi,
> >
> > Is it possible to use the selectedValue of a dropdownlist to fill one of
> > the field of a detailsview?
> >
> > I tried a lot of things, but still without succes. Here are the two
> > methods
> > i tried with two different errors. It works only when i introduce
directly
> > a
> > value in "DefaultValue" (see below)
> >
> > Thanks for help
> > André
> >
> >
> > 1) first method:
> > asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
> > ...
> > InsertCommand="INSERT INTO [pc] ([na], [ty],  [lok]) VALUES (?, ?,
@lok)"
> > OldValuesParameterFormatString="original_{0}"
> > ProviderName="System.Data.OleDb"
> > <InsertParameters>
> > <asp:Parameter Name="na"  Type="String" />
> > <asp:Parameter Name="ty"   Type="String" />
> > </InsertParameters>
> > ....
> > Code-behind:
> > Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
> > ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
> > lok = DropDownList1.SelectedValue
> > SqlDataSource1.InsertParameters.Add("lok", lokl)
> > End Sub
> >
> > This gives: No value given for one or more required parameters
>
> --------------------------------------------------------------------------
--
> > -------------------------
> > 2) second method
> > asp:SqlDataSource ID="SqlDataSource1" runat="server" ....
> > ...
> > InsertCommand="INSERT INTO [pc] ([na], [ty],  [lok]) VALUES (?, ?,
@lok)"
> > OldValuesParameterFormatString="original_{0}"
> > ProviderName="System.Data.OleDb"
> > <InsertParameters>
> > <asp:Parameter Name="na"  Type="String" />
> > <asp:Parameter Name="ty"   Type="String" />
> > <asp:Parameter Name="lok"   Type="String" DefaultValue="<%=lok %>" />
> > </InsertParameters>
> > ...
> >
> > Code-behind:
> > Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
> > ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
> > lok = DropDownList1.SelectedValue
> > End Sub
> >
> > This gives: You cannot add or change a record because a related record
is
> > required in table 'lokl'
> > which means in fact that the value of the parameter is not passed!
> >
> > It works when i give directly a value: <asp:Parameter Name="lok"
> > Type="String"  DefaultValue="1-45" />
> >
> >
> >
>
>

AddThis Social Bookmark Button