DataGrid中动态创建其中的列并设置了列的SortExpresion属性和sortcommand事件而出现sortcommand事件不运行?
解决方案 »
- 动态添加linkbutton的问题,PostBackUrl 无效,找不到答案!在线等高人!
- FreeTextBox不能获得新值了.怎么解决?
- 求各时间正则表达式
- 急!!!!!!!!那位兄弟帮我看看这个模板运行后居然看不到表格?谢谢了!!!
- 将 Excel 数据读取到数据集的问题——难!急!
- 为什么选中之后,只能删除第一列,选中其它列删,都不删除呢
- dropdownlist 默认值设置?
- 请问这个输出数据到excel的为什么会这样?
- 关于DownDropList数据绑定的问题[菜鸟求救!]
- 如何获取网站订单的来源
- 怎样写连接Oracle数据库的字符串?
- 水晶报表导出WORD时错误(在线,急须帮忙!)
把邦定DataGrid的那段代码放到if(!Page.IsPostBack)里
<script language="VB" runat="server"> Dim SortField As String Function CreateDataSource() As ICollection
Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer 'create a DataTable
dt = New DataTable
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))
dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double))) 'Make some rows and put some sample data in
For i = 1 To 9
dr = dt.NewRow()
dr(0) = 9-i
dr(1) = "Item " & i.ToString()
dr(2) = DateTime.Now.ToShortTimeString
If (i Mod 2 <> 0) Then
dr(3) = True
Else
dr(3) = False
End If
dr(4) = 1.23 * (i + 1)
'add the row to the datatable
dt.Rows.Add(dr)
Next 'return a DataView to the DataTable
Dim dv as DataView = New DataView(dt)
dv.Sort = SortField
CreateDataSource = dv
End Function Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
If SortField = "" Then
SortField = "IntegerValue"
End If
BindGrid
End If
End Sub
Sub MyDataGrid_Sort(sender As Object, e As DataGridSortCommandEventArgs)
SortField = e.SortExpression
BindGrid
End Sub Sub BindGrid()
MyDataGrid.DataSource = CreateDataSource()
MyDataGrid.DataBind
End Sub
</script><body> <h3><font face="Verdana">Basic Sorting in DataGrid</font></h3> <form runat=server> <ASP:DataGrid id="MyDataGrid" runat="server"
AllowSorting="true"
OnSortCommand="MyDataGrid_Sort"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#ccccff"
HeaderStyle-ForeColor="black"
/> </form></body>
</html>
{
string SortExpression=e.SortExpression.ToString(); //获得当前排序表达式
string SortDirection="ASC"; //为排序方向变量赋初值
if(SortExpression==ViewState["SortExpression"].ToString()) //如果为当前排序列
{
SortDirection=(ViewState["SortDirection"].ToString()==SortDirection?"DESC":"ASC"); //获得下一次的排序状态 }
ViewState["SortExpression"]=SortExpression;
ViewState["SortDirection"]=SortDirection;
GetDataDataSource();
}
另外看看
this.DataGridList.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGridList_SortCommand);
是否存在
Page_Load()中不能把邦定DataGrid的那段代码放到if(!Page.IsPostBack)里
if(!Page.IsPostBack)我是用来初始化统计条件的,然后根据条件动态的创建Datagrid的列;这时候在页面的查询条件下显示统计结果。
<%@ Import Namespace="System.Data" %><html>
<script language="VB" runat="server"> Dim SortField As String Function CreateDataSource() As ICollection
Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer 'create a DataTable
dt = New DataTable
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))
dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))
dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))
dt.Columns.Add(new DataColumn("CurrencyValue", GetType(Double))) 'Make some rows and put some sample data in
For i = 1 To 9
dr = dt.NewRow()
dr(0) = 9-i
dr(1) = "Item " & i.ToString()
dr(2) = DateTime.Now.ToShortTimeString
If (i Mod 2 <> 0) Then
dr(3) = True
Else
dr(3) = False
End If
dr(4) = 1.23 * (i + 1)
'add the row to the datatable
dt.Rows.Add(dr)
Next 'return a DataView to the DataTable
Dim dv as DataView = New DataView(dt)
dv.Sort = SortField
CreateDataSource = dv
End Function Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
If SortField = "" Then
SortField = "IntegerValue"
End If
End If
End Sub
sub cmdfind_click(sender As Object, e As EventArgs) BindGrid()
end sub
Sub MyDataGrid_Sort(sender As Object, e As DataGridSortCommandEventArgs)
SortField = e.SortExpression
BindGrid
End Sub Sub BindGrid()
MyDataGrid.DataSource = CreateDataSource()
MyDataGrid.DataBind
End Sub
</script><body> <h3><font face="Verdana">Basic Sorting in DataGrid</font></h3> <form runat=server> <ASP:DataGrid id="MyDataGrid" runat="server"
AllowSorting="true"
OnSortCommand="MyDataGrid_Sort"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#ccccff"
HeaderStyle-ForeColor="black"
/> </form></body>
</html>
执行完cmdfind_click并显示Datagrid可是当要排序时其中的sortcommand事件就是不执行