Gridview - Capturing Sort Direction
Feb 2, 2011
I have a gridview in an updatepanel with sorting enabled and an event handler as follows:
protected void MyGridSort(object sender, GridViewSortEventArgs e)
{
var TheDirection = (e.SortDirection).ToString();
var TheColumn = (e.SortExpression).ToString();
I put a breakpoint just after these lines. Every time I press the column header, my variable TheDirection is always showing Ascending. Why is it not toggling from ascending to descending and back?
View 1 Replies
Similar Messages:
Aug 16, 2010
I was given help in a previous topic located here: Accessing Gridview In Another Form In this topic I had gridview rows that are selectable and a search window that returned search results. We found a way for me to select a row in the parent window of the search one. My issue now is that when the parent windows gridview is sorted, the function no longer selects the correct row. I was wondering if there was any way to access the gridviews sort expression and direction, or some other way I can do this so it accounts for sorting. Relavent code is as follow: This is in my parent window
<script type = "text/javascript">
function selectRow(index)
{
//Retrieve a reference to the table that represents the GridView
var gridView = document.getElementById('<%=gvSideList.ClientID%>');
if(gridView)
{
//If able to get a reference to the table representing the GridView...
var doPostbackArgument='Select$'+index;
__doPostBack('<%=gvSideList.ClientID%>',doPostbackArgument);
}
}
This is in the child window
<script type = "text/javascript" >
function selecttherow(index)
{
window.opener.selectRow(index);
}
</script>
protected void gvresults_SelectedIndexChanged(object sender, EventArgs e)
{
//declare variables
GridViewRow row;
int index;
int id;
//retrieve index, row, and id from gvresults
index = gvresults.SelectedIndex;
row = gvresults.Rows[index];
id = Convert.ToInt32(row.Cells[5].Text);
//fill a datatable from general with id's for selection
SqlCommand cmd = new SqlCommand("SELECT ID FROM General", csbg);
cmd.Parameters.AddWithValue("@id", id);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
//loop through the dt and find the index of the matching id from the search window
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["ID"].Equals(id))
{
//execute script to select the matching row in the dataentry page
string script = "";
script += "selecttherow(";
script += i;
script += ");";
ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "selecting", script, true);
break;
}
}
}
Let me know if you need me to further clarify anything.
View 7 Replies
Mar 2, 2011
Asp.net.3.5 gridview on sorting problem The control not remember the last sort direction on the source side
AllowSorting="True"
EnableViewState="true"
on the server event
[Code]....
View 2 Replies
Sep 23, 2010
Just spent about 8 hours googling and looking through this forum for a solution on how to make sure that I can dynamically sort. Here is the situation.
I have 1 Gridview that displays 10 different scenarios based on what button is clicked.
I am also returning only top 10 records. I am doing all of the data binding pragmatically. So I have BoundFields, HyperLinkFields etc.
I also want to sort some records. When I change DataSource SQL statement the gridview somehow remembers what the last sort value was and it errors out saying that value "x" cannot be sorted because it does not exists.
I tried this:
Tried setting gridview1.sqldatasourceid = null; gridview1.allowsorting = false; gridview1.databind();
Here I get an error that says that the data source does not support sorting? Doesnt it say gridview1.allowsorting = false;
I also tried gridview1.sort("", SortDirection.Ascending); This does nothin... except query my database one more time because i have a onSorting event that looks like this:
[Code]....
Here is an example of just one of those SLQ statements inside GetSQLQuery:
[Code]....
View 1 Replies
Apr 12, 2012
My Gridview sorting only works only one way means it works only desc order not by asc order.
below is my code:
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Gridview1.Visible = False
End If
End Sub
Protected Sub Submit_Click(sender As Object, e As System.EventArgs) Handles Submit.Click
Gridview1.DataSourceID = Nothing
[code]....
View 1 Replies
Apr 28, 2010
How do I pass a GridView column value to the code behind with out making it visible? In the following code, I would like to capture the ContactID with out making it visible in the GridView.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1"
OnRowCommand="_OnRowCommand"
>
<Columns>
<asp:BoundField DataField="ContactID" HeaderText="ContactID"
SortExpression="ContactID" InsertVisible="False" ReadOnly="True" />
.....other columns in the grid....
<asp:ButtonField ButtonType=Button CommandName="Remove" Text="Remove" />
</Columns>
</asp:GridView>
I would like to capture ContactID as follows. I can not do so with out making it visible = true in the GridView.
if (e.CommandName.Equals("Remove"))
{
int index = Convert.ToInt32(e.CommandArgument);
int ContactID = Convert.ToInt32(GridView1.Rows[index].Cells[0].Text.Trim());
}
View 1 Replies
Jul 2, 2010
I have two GridViews that list out included and exclude data items respectively. By clicking "Change Status" (a custom button for each row) Users can change the row status from included to excluded or vice versa. However before changing the status - users would need to specify the reason and enter a date for when they want something included/excluded. So these are additional operations that need to take place after the "Change Status" button is clicked and before an update occurs. I want to use jQuery to capture the row id being "changed", save this value and pass back the update to the database. I will use an absolute div for the menu but I'm running into issues as to how to capture row id and how to pass this back to my C# in codebehind.
View 1 Replies
Feb 15, 2010
I have two pages, the first one displays a list of products in a gridview, one column in the gridview is a hyperlink, this can be clicked on to get further details about the product. Each row in the gridview can be selected, certain details are added to an array (including the hyperlink column). I them want to display these details on page number two. All details are displayed except the hyperlink field.Has anybody any ideas as to what I'm doing wrong? The code is as follows:
[Code]....
and the second page:
[Code]....
View 6 Replies
Mar 7, 2011
I have a grid view with the following structure
[Code]....
Here is the scenario:
The data is populated in the gridview dynamically at runtime The number of rows vary each time The auto postback event has been set to true I need to capture the rows that are selected, When I try to capture the button click event; the gridview is null(I understand that it has to be rebound on each postback). Hence this is not working
[Code]....
I also tried this, the rowcommand event; It is also not getting generated. The gridview rowcommand is not getting fired
[Code]....
I need the rows which are selected using the checkbox in the above mentioned sceanrio.
View 4 Replies
Oct 29, 2010
My Problam is on Capturing Text Box and Dropdown seleted itam from grid view i create a gridview with Empty DB binding using [URL] this senirio. I only used setinitional value() function and called its in page load as discribed in above lonk. insted of adding New record Button i callled a java scrit code discribed below. and i also create a button (SAVE) to capture a value intered in text box . On this button click event i try to capture a textbox and dropdown value like
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
DropDownList sen_to1 = (DropDownList)Gridview1.Rows[i].Cells[1].FindControl("DD_sento_org");
TextBox Add_to1 = (TextBox)Gridview1.Rows[i].Cells[2].FindControl("Txt_addto");
int Add_to = Convert.ToInt32(sen_to1.SelectedValue);
String Addd_to = Add_to1.Text;
}
but its not working i can not go inside loop.
<script
type='text/javascript'
language='javascript'>
function AddNewRecord(keyCode, obj)
{
if (window.event.keyCode==13 )var grd = document.getElementById('Gridview1');
var tbod=grd.rows[0].parentNode;
var newRow=grd.rows[grd.rows.length - 1].cloneNode(true);
cleanUpInputs(newRow);
tbod.appendChild(newRow);
}
}
return
false ;
View 4 Replies
Jul 18, 2010
Moderators Note: THIS ISSUE IS BIG FOR ME AND EVEN IF POSSIBLE, GET THE REPLY FROM THE DESIGNER OF GRIDVIEW. I have been looking for him for long. I am really fed up with reviewing a good lot of web pages on how we can possibly customize the gridview to enable sorting and paging. So many sites have listed out a lot of information and so many guidances. But the problem is that one works out fine and the other is a burden. I really feel bad about being given the job of customizing this kind of a gridview which has no user friendly approach to it. Also, this control is rendered without the pager links inside the <tfoot> tag. I have tried the Pear Pager in php. It is that good and easy to use and compared to that, the gridview in asp.net is the worst ever control i have ever tried so far.
1. i can use the images to indicate the sorting direction
2. I can have the custom pager like
[code]
<<Previous 1 2 3 .. 7 Next >>.
[/code]
When i click the next when i am viewing the page at 3 , the pager links should change as
[code]
<<Previous 2 3 4 .. 7 Next >>
[/code]
Kindly look into this type of requirement and firstly tell me whether this is possible with the gridview control. I would like this request even to be escalated to the designers of the gridview control also, so that Microsoft comes out with a reply THAT WORKS and not the kind of stuff like surfing through a lot of links and pages and finally wasting a lot of days precious time and still breaking the head with this useless control. I have spent a lot of time in searching for a perfect way. Not writing a code that is non-standard. I am really serious b'cos I have spent weeks in customizing this control. If I dont get a solid reply atleast now, I am going to generate all the output by HTML content by custom coding.
View 7 Replies
Jun 3, 2010
I have a simple dynamic gridview with following code -
GV = new GridView();
View 3 Replies
Jan 18, 2011
I have a gridview with data. I want a button which is not part of the gridview. Then if I press a button the gridview is sorted by two colums. i.e column1 ascending column2 descending.
I am not looking to work with a Sqldatasource as I use a data access layer. So the sort would have to be from a datatable and databind or directly with the gridview.
View 3 Replies
Mar 7, 2010
Actually i want to ask which is the best for sorting in Asp.Net is it DataView.Sort Method or List<Object>.Sort() method.
View 1 Replies
Apr 20, 2010
I'm looking for a way to sort the rows of a datatable without setting the DefaultView.Sort to a specific column. I have a datatable in session that users can add records to. I want them to be able to sort the data by clicking on a button. But new records added after that need to show up at the bottom of the list until the sort button is clicked again.
View 2 Replies
Oct 28, 2010
What's the best way to do this? I have seen quite a few examples that use a Dataview etc. what is the best method. I'm thinking about speed issues when a grid has a few thousand records etc.
this is how I populate the gridview:
Code:
[code]....
View 5 Replies
Jul 13, 2010
I have a repository that contains all of my LINQ queries for this project that I am working on. I am able to get the LINQ results to a DataTable and bind that to a gridview for displaying the data. Now I need to make the gridview sortable. I have set AllowSorting="true" and I have the OnSort event handled in a routine in the codebehind.
View 2 Replies
Mar 8, 2011
the specific example i am referring to is this site [URL] notice the sort by drop down list. basically i want to sort products according to price,name,popularity? do i have to requery the database and retreive the sorted data in gridview again, or should i already sort the items in the gridview that are already there? I tried to this but its the wrong approach, basically i was trying to repopulate data in the page load event, which was giving error.
View 2 Replies
Feb 4, 2011
I want to sort a GridView by clicking on the header. I guess all i need is the header name and then pass it into sql to get the data back sorted. How is it possible to get the header name?
View 3 Replies
Mar 21, 2011
Loading data into gridview, retieving data using linq,I have a method that accepts two paramters that would sort specific field and return the object to the gridviewi.e.
passing into the method GenerateData(string sortExp, string sortDir)
sortExp = "Name", sortDir = "descending"
linq query://works
[code]...
View 2 Replies
Feb 2, 2011
I have a gridview with several columns, 3 of which I'd like to sort. The source for the data is held in the session.
protected void MyGridHistorySort(object sender, GridViewSortEventArgs e)
{
var TheColumn = (e.SortExpression).ToString();
TheDataHistory = (List<ViewDataHistoryModel>)Session["SessionDataHistory"];
var test = "data.DataDate";
var NewDataSource = from data in TheDataHistory
orderby test
select data;
MyGridHistory.DataSource = NewDataSource;
MyGridHistory.DataBind();
DataDate is a valid column in the list but the orderby statement doesn't work. Ideally, I'd like it to sort with the variable TheColumn by writing something like test = "data."+TheColum; and then add a sort direction based on a boolean. I looked at the OrderBy extension method NewDataSource.OrderBy(test); but that doesn't work either.
View 3 Replies
Mar 9, 2010
I have a gridview with paging, which displays 5 records in each page.
How can I sort the elements of the current page only?
And other pages should not be sort?
I am using ASP.NET and C#.NET.
Is there any way to do this in LINQ?
View 1 Replies
Feb 25, 2012
<asp:GridViewid="gridview"
runat="server" DataSourceID = "SqlDataSource1"
PageSize="30" EmptyDataText = "No Records Found" EmptyDataRowStyle-HorizontalAlign ="Center"
AllowPaging="true"
HorizontalAlign="Center" BorderColor ="Black" Width = "762" Font-Names="Calibri"
[Code] ....
First time on page load
Sorting works fine
But if I done sorting on gridview column then its always the same , How to assign result of SQL query to my result
so that my sort will show result from sql query order not the order of grisview sort ...
View 1 Replies
Mar 25, 2010
I'm trying to sort records in the gridview right after a radio button is selected. My approach is with the dataview, but because the dataset variable doesn't survive a round trip to the server, I don't know how to make this happen.
Public Sub GetCustomers()
db.RunProcedure("usp_customers_get_all")
db.doSort(radList.SelectedValue)
gvCustomers.DataSource = db.MyView
End Sub
Protected Sub radList_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles radList.SelectedIndexChanged
If radList.SelectedValue = 0 Then
db.doSort(0)
gvCustomers.DataSource = db.MyView
End If
If radList.SelectedValue = 1 Then
db.doSort(1)
gvCustomers.DataSource = db.MyView
End If
End Sub
Public Sub doSort(ByVal strIn As Integer)
If strIn = 0 Then
MyView.Sort = "lastname, firstname"
Else
MyView.Sort = "username"
End If
End Sub
Public Sub RunProcedure(ByVal strName As String)
Dim objConnection As New SqlConnection(mstrConnection)
Dim mdbDataAdapter As New SqlDataAdapter(strName, objConnection)
Try
mdbDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure
Me.mDataset.Clear()
mdbDataAdapter.Fill(mDataset, "tblCustomers")
MyView.Table = mDataset.Tables("tblCustomers")
Catch ex As Exception
Throw New Exception("stored procedure is " & strName.ToString & " error is " & ex.Message)
End Try
End Sub
View 1 Replies
Feb 16, 2012
My Gridview sort is working only first time. My Gridview sort only first time when I click on any column
I want ASC > DESC
Again DESC > ASC
and Again ASC > DESC this way my sort should work
I have changed my code
I added Gridview binding to PAge_Load function
Code is below
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim myUserInfo As GCS_User_Info = Session("UI")
If Not Page.IsPostBack Then
GRDView.DataSource = GetSortableData(String.Empty) 'System.Drawing.FontFamily.Families
GRDView.DataBind()
[Code] ....
View 1 Replies