Programmatically set FilterExpression and FilterParameters of SqlDataSource

F

fuchs.markus

Hello,
on my page, I have a DetailsViewControl connected to a SqlDataSource.
Now when I dynamically set the FilterExpression and FilterParameters -
for example in a OnClick-EventHandler of a button - the DetailsView
shows the filtered Data, but Deleting and Updating doesn't work
anymore. The DetailsView changes to EditMode, but after clicking on the
UpdateButton it shows the old data.
Am I missing something or is it just not possible or perhaps a beta
problem?

Here is my Button-Click-EventHandler:

protected void Button1_Click(object sender, EventArgs e)
{
SqlDataSource1.FilterExpression = "CompanyName LIKE '{0}'";
SqlDataSource1.FilterParameters.Add("CompanyName", "A*");
}


And here my Page-SourceCode:

<asp:DetailsView ID="DetailsView1" runat="server"
AllowPaging="True" AutoGenerateRows="False"
DataKeyNames="CustomerID" DataSourceID="SqlDataSource3"
Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="CustomerID"
HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" />
<asp:BoundField DataField="CompanyName"
HeaderText="CompanyName" SortExpression="CompanyName" />
<asp:BoundField DataField="ContactName"
HeaderText="ContactName" SortExpression="ContactName" />
<asp:BoundField DataField="ContactTitle"
HeaderText="ContactTitle" SortExpression="ContactTitle" />
<asp:BoundField DataField="Address"
HeaderText="Address" SortExpression="Address" />
<asp:BoundField DataField="City" HeaderText="City"
SortExpression="City" />
<asp:BoundField DataField="Region" HeaderText="Region"
SortExpression="Region" />
<asp:BoundField DataField="PostalCode"
HeaderText="PostalCode" SortExpression="PostalCode" />
<asp:BoundField DataField="Country"
HeaderText="Country" SortExpression="Country" />
<asp:BoundField DataField="Phone" HeaderText="Phone"
SortExpression="Phone" />
<asp:BoundField DataField="Fax" HeaderText="Fax"
SortExpression="Fax" />
<asp:CommandField ShowDeleteButton="True"
ShowEditButton="True" ShowInsertButton="True" />
</Fields>
</asp:DetailsView>

<asp:SqlDataSource ID="SqlDataSource3" runat="server"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString5 %>"
DeleteCommand="DELETE FROM [Customers] WHERE [CustomerID] =
@original_CustomerID"
InsertCommand="INSERT INTO [Customers] ([CustomerID],
[CompanyName], [ContactName], [ContactTitle], [Address], [City],
[Region], [PostalCode], [Country], [Phone], [Fax]) VALUES (@CustomerID,
@CompanyName, @ContactName, @ContactTitle, @Address, @City, @Region,
@PostalCode, @Country, @Phone, @Fax)"
SelectCommand="SELECT * FROM [Customers]"
UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName,
[ContactName] = @ContactName, [ContactTitle] = @ContactTitle, [Address]
= @Address, [City] = @City, [Region] = @Region, [PostalCode] =
@PostalCode, [Country] = @Country, [Phone] = @Phone, [Fax] = @Fax WHERE
[CustomerID] = @original_CustomerID" OnUpdated="SqlDataSource3_Updated"
OnUpdating="SqlDataSource3_Updating">
<DeleteParameters>
<asp:parameter Name="original_CustomerID" Type="String"
/>
</DeleteParameters>
<UpdateParameters>
<asp:parameter Name="CompanyName" Type="String" />
<asp:parameter Name="ContactName" Type="String" />
<asp:parameter Name="ContactTitle" Type="String" />
<asp:parameter Name="Address" Type="String" />
<asp:parameter Name="City" Type="String" />
<asp:parameter Name="Region" Type="String" />
<asp:parameter Name="PostalCode" Type="String" />
<asp:parameter Name="Country" Type="String" />
<asp:parameter Name="Phone" Type="String" />
<asp:parameter Name="Fax" Type="String" />
<asp:parameter Name="original_CustomerID" Type="String"
/>
</UpdateParameters>
<InsertParameters>
<asp:parameter Name="CustomerID" Type="String" />
<asp:parameter Name="CompanyName" Type="String" />
<asp:parameter Name="ContactName" Type="String" />
<asp:parameter Name="ContactTitle" Type="String" />
<asp:parameter Name="Address" Type="String" />
<asp:parameter Name="City" Type="String" />
<asp:parameter Name="Region" Type="String" />
<asp:parameter Name="PostalCode" Type="String" />
<asp:parameter Name="Country" Type="String" />
<asp:parameter Name="Phone" Type="String" />
<asp:parameter Name="Fax" Type="String" />
</InsertParameters>
</asp:SqlDataSource>

Thanks in advance
Markus Fuchs
 
M

Markus

Hi all,
I've found a solution to my problem: If I leave the FilterParameters
alone and write keys as well as values in the FilterExpression-String,
everything works properly.

MF
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top