Forms Data Controls :: Div Collapses Every Time Click On GridView's Sort Column Header?
Feb 8, 2010
I have several grid views indide div's, and when I click the Sort header on an open div the div collapses and no sort happens. I believe it is just reloading the entire page but when I surround PageLoad with !ISPostBack then the page redraws as blank. Since the sort script is generated by the GV, I don't know how to stop it from creating side effects.
Here's my code:
<script type="text/javascript" language="javascript">
function toggleDisplay(id) {
var obj = document.getElementById(id);
obj.style.display = (obj.style.display == "none") ? "" : "none";
return false; // cancel the href
}
</script>
I have a page with a TextBox, a Button, a GridView, and a SqlDataSource. I click the Button to execute the SQL in the TextBox using the SqlDataSource. The SqlDataSource populates the GridView. Everything works as expected until I click a column heading to sort.
When I click a column heading, the GridView disappears and I have to click the Button to display the grid again. When I do, the grid is displayed in the order of the column I clicked.
I don't understand why the GridView is disappearing when I click a column header.
Does anyone know how to fix this so the GridView is sorted and displayed only by clicking the column header?
If the grid column is clicked to sort i dont want to retireve data agian, i can get it from viewstate, but i dont know if that triggered the post back or if the ImageButton on the page triggered it
I have a gridview which I am trying to be able to sort by clicking the column header. Currently, I have the column header underlined by turning the 'allow sorting' function to TRUE, but when I click the column header, it does nothing.
Is this a good method for displaying a soricon? or are there better ways of doing it;
[URL]
Also when the gridview is first loaded its sorted by a "Date Submitted" field which is sorted on the data source (stored procedure) is there any way of showing the icon then so people know that it is sorted by "Date Submitted" at the moment the icon only shows when someone re-sorts the grid.
Is there a way to Sort a Gridview by a Calculated Column? I have a gridview with template fields using lablels and a linq datasource. Those columns sort just fine. I can not get the Calculated column to sort, because there is no sort expression to use...
i have a gridview that has the ability to sort by each of the columns, but suppose if i'm on page 2 of the results and sort any of the columns, it jumps back to page 1. is there a way to keep it on page 2, still have the sorted date work?
I have been struggling with this problem for a long time. Does anyone have any clue about this problem? I created a gridview and set the allowsorting to true. This gridview has four columns: Name, Position, StartDate, and EndDate. I want the gridview to be sorted on the EndDate.
Inside of the save event, I called the BindGrid() function to rebind the datasource to the gridview. The changes will shown immediately, but the problem is that the records are not sorting on EndDate. I have to refresh the page manually to get the view sorted.
I have a gridview on my page. I have a checkbox in each row of this gridview. For each checkbox in the gridview, I'd like to update my table accordingly, but I don't want them to have to hit a submit button every time they check the checkbox. I want them to check all the boxes they need to and at the end, they should hit one submit button.
I have a Parent gridview with a nested gridview. Edit on the parent works fine. On the nested child gridview, when I click the edit button, the line goes into edit mode, but the parent row collapses. To correct I added javascript to call the javascript function that is used to expand and collapse the rows. It is located in the RowDataBound event of the parent gridview.
Based on the code samples I have, the way the process should work when the edit button is clicked is the RowCommand and then the RowEditing events for the child gridview are supposed to fire, followed by the RowDataBound for the parent. The child events are firing after the parent though. This wouldn't be a problem except that I am retrieving the parent line that holds the child record being edited so that value can be fed to the javascript function to expand the row. How can I fix this or work around it?
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.
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:
I have a merged column of firstname and lastname by "Select firstname + lastname from table" but when it appears in the gridview the header text of the column is "Expr1000". How can I change the header text of that merged column?, and I want to change its text into "NAME".
I want if the header of a particular column contains a word "S", the header and row turns red. I used following code to make header red and it works fine. How to make it such that the rows also turn red if condition is met ? I cannot hardcode in columns since the Gridview is autogenerate colums as data structure keeps changing.
Protected Sub GridView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs)Dim HeaderRow As GridViewRow = GridView1.HeaderRowFor Each c As TableCell In HeaderRow.CellsIf c.Text.EndsWith("S") Then c.BackColor = Drawing.Color.OrangeRed End If Next End Sub