DataSource Controls :: Maintaining A Custom SelectCommand Across Page Loads?
Feb 19, 2011
My SqlDataSource has no selectCommand defined in the .aspx page. Instead I define it in the code behind dynamically depending on some parameters that the user selects and then clicks a button to perform the query (custom search filters basically). The problem is that when I click on a different page in my dataPager, or I click to sort any of the columns the gridview becomes empty when the page refreshes. I did a check and the selectCommand becomes empty when the page posts back. Is there a way to prevent this from happening?
I have a SqlDataSource setup in the markup on my page. After some new requirements, I am trying to find a way to modify the SelectCommand before the data is filled for the first time. The SelectCommand below will now be used by default since we'll always have the first param. I am faced with a need to modify the SelectCommand though, adding a second session parameter along with it. I tried to override the OnInit method but it didn't seem to help...it still used the default query. Is there a best way to accomplish this? Here is the section of markup I am referring to:
I have a page has Listview and Datapager inside UpdatePanel. When I refresh the new SQL results and bind by pressing link buton outside of the update panel, I get correct results. (get new SQLselect statment, rebind to listview, update updatepanel)
However, the SelectCommand is not bound right or some other reason, if I press datapager, I won't get no results.
I'm guessing it's caused by not passing new dynamic selectcommand since my datapager and listview works first update.
I am trying to pass a variable within a selectcommand statment in ASP.NET and I have researched online how to do it but I can't seem to find a way to do it...What I am trying to do is write a code for a web page that will display a page with useful links on it where the links are separated into different topics and where everything is dynamically grabbed from a database. This is what I have so far:
My SelectCommand string in my asp:SqlDataSource is very long. Is there a way I can chop it up into different strings on several newlines to make it more readable?
I have a question related to <asp:SqlDataSource's SelectCommand. How to pass a querystring like <%# Eval("PhotoID") %> in the selectCommand. The whole frontend code is attached. I put
<%# Eval("PhotoID") %> and the photoid gets printed in the page. <%# Eval("PhotoID") %> is the current displayed picture's PhotoID.
I want to pass this PhotoID or I want to pass <%# Eval("PhotoID") %> to the select command dynamically. I have tried the following approaches:
1) <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:aspnetdb %>" SelectCommand="SELECT UserName, commentDesc, uID FROM photo_comment_view Where pID = @pID"> <SelectParameters><asp:Parameter Name="pID" DefaultValue="7" /></SelectParameters> </asp:SqlDataSource> The above works but it gives only information about PhotoID 7, but there are other photos; How to set pID's value to <%# Eval("PhotoID") %> in ASP .NET's frontend page? then I also tried,
2) <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:aspnetdb %>" SelectCommand="SELECT UserName, commentDesc, uID FROM photo_comment_view Where pID = <%#'Eval("PhotoID') %>"></asp:SqlDataSource> Gives Parser error: Parser Error Message: The server tag is not well formed.
What I should do so that I can pass current PhotoID to SelectCommand? The frontend code:
In an asp.net 3.5 web app, I have a page with the following markup/code (this is the brief version, but I believe I got all the relevant info).
[Code]....
The form contains 2 different record types, accessed using the paging controls, depending on the ParentSR field; a parent SR will be something like '1234' while its sub-record will be something like '1234.1'. There are only a few differences in the fields used between the 2 different record types and that is why they are stored in the same table. However, the activity depends on the record type. When browsing from the parent record to the sub-record, the itemtemplate loads fine (notice in the formview's datasource query, that the sractivity_id field is being pulled along with the subquery value). But when going to edit the record, the page throws an error:
System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.ArgumentOutOfRangeException: 'ddlActivity' has a SelectedValue which is invalid because it does not exist in the list of items.
If i click 'back' and retry, it may take 3 attempts, but then the edittemplate will load just fine. I should also point out that this error does not always occur. I've been trying to figure this out for a couple months and it is driving me nuts, mainly due to the fact that I can't reproduce the error in development--it seems to only occurr in production. Anyone with any thoughts on what is going on?
I've got a gridview which works fine. I use dropdownlists which are filled with distinct values of the columns. So when I select an item in a drompdownlist the gridview refreshes based on the selected value. When I have a column which uses string values, I can start the filter with a default % value to use in my select paramaters. But when I have a date column, I can't use that. I use a datasource for the gridview and I prefer to leave codebehind out if this is not needed. Now I use >= in my gridview select to show all rows. but I want to use only = to make the filter work correct when I select a date in the ddl and use the selectedvalue in the gridview selectCommand
<asp:DropDownList ID="ddlUpdateDatum" DataSourceID="dsPopulateUpdateDatum" AutoPostBack="true" DataValueField="UPDATEDATE" runat="server" CssClass="selectinput" AppendDataBoundItems="true"> <asp:ListItem Text="All" Value="01/01/1900"></asp:ListItem> </asp:DropDownList> <asp:SqlDataSource ID="dsPopulateUpdateDatum" runat="server" ConnectionString="<%$ ConnectionStrings:GAMSYSTEMSqlServer %>" SelectCommand="SELECT DISTINCT(UPDATEDATE) FROM [messages] ORDER BY UPDATEDATE ASC "> </asp:SqlDataSource> And I use this in the gridview datasource: <asp:SqlDataSource runat="server" ID="dsGridview" ConnectionString="<%$ ConnectionStrings:DBSqlServer %>" SelectCommand = "SELECT * FROM [messages] WHERE AND UpdateDatum >= @UpdateDatePar ORDER BY UpdateDatumDESC" > <SelectParameters> <asp:ControlParameter Name="UpdateDatePar" ControlID="ddlUpdateDate" PropertyName="SelectedValue" Type="string" /> </SelectParameters>
I've got a dropdownlist and a Gridview Based on the choice from the dropdownlist (which has a '--Select--' as the first item), the gridview is populated. If nothing is in the database when queried, I have a message for the emptydatatext property of the gridview. However, it comes up when the page first loads, since it's based on the ddl. How can I make it so that, when the page loads for the first time, the emptydatatext property is ignored?
How to populate a DropDownList (using C#) inside a DataList while page loads.....yes we can do it by using DatasourceID propeerty in aspx page itself(as I've done here..), but how do I do using C# in code behind only?
Have a project where I need to access a RSS feed. The issue is this RSS feed, you need to be logged in as a user. They have a simple web form (login + password).
1) Post a web form with my login and password
2) Maintaining Session (w/successful login), do an additiional GET to retrieve the RSS feed.
I am doing this in an ASP.Net page so it all happens server side in VB.Net
Once user enter credentials i want his name to be appear on top.User should be maintained through out the pages of website until he choose to sign out.And also diff users will have diff access to some parts of website, like only manager can delete the content.
The problem with my web application is when ever i load the home page - The master page as well as content page loads ---This seems fine but when i navigate thorugh the website which have the same Master page but diffrent content page .... the master page loads again. What i want to do is ..I want to keep the master page intact and only the content page loads. How can I accomplish it..
i have seen many site where individual web parts load with busy icon when page loads. without using web parts how can develop a page where individual section will load with busy icon when page loads.
I have a master page 'Master1' and i have used a content place holder 'content1' and loads pages 'Page1' and 'page2' in the 'content1'. Is there any way to identify which page is loaded to the content place holder whether it is 'Page1' or 'Page2' dynamically.
have an ASP.Net 2.0 (VB) application which connects (SQL Authentication) to SQL Server 2008. I publish the application to our intranet. The start page is frmMain.aspx. I RDP to a "neutral" PC (one like our users have) and the site loads fine the first time in. The users cannot bring up this application, however (it does not load--times out). They have been able to run this application before from this same intranet location and have not had problems. I have re-published the site, but this behavior continues.
What would cause a single webpage to load slowly? I have javascript within the <head> element. The html consists of 2 <div> elements and within these <div> elements are a bunch of <table> elements and that's it.
The functionality of this site is such that each <table> element contains data that during the "onload" event, these <table> elements are hidden. Each <table> elements is controlled by an HTML menu (the menu itself is an html table). When a menu item is clicked, it will either display or hide the <table> element depending on whether it is already displayed or hidden.