首页 新闻 会员 周边 捐助

关于datagrid 的诡异事件!希望得到帮助。。。

0
悬赏园豆:10 [已解决问题] 解决于 2009-09-14 10:56
<asp:datagrid id="ProductGrid" runat="server" AutoGenerateColumns="False" GridLines="both" width="98%"
CellPadding="3" BackColor="DimGray" BorderWidth="1px" BorderStyle="None" BorderColor="Transparent" EnableViewState="False"  AllowSorting="true">
          <AlternatingItemStyle BackColor="#ffffff"> </AlternatingItemStyle>
          <ItemStyle ForeColor="Black" BorderColor="White" BackColor="#f7f7f7"> </ItemStyle>
          <HeaderStyle Font-Bold="True" BackColor="#EEEEEE"> </HeaderStyle>
          <Columns>
          <asp:TemplateColumn HeaderText="用户">
            <ItemTemplate>
              <a href='../user/info.aspx?UserName= <%# DataBinder.Eval(Container.DataItem, "UserName") %>'>管理 </a>&nbsp;
  <%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "AgentType"))==0?"客户":"代理" %>&nbsp;
              <%# GetImportantUser(DataBinder.Eval(Container.DataItem,"TraceStatus")) %>&nbsp;
              <a href='index.aspx?Status=-1&keyword= <%# DataBinder.Eval(Container.DataItem, "UserName") %>'> <%# DataBinder.Eval(Container.DataItem, "UserName") %>&nbsp; <%# DataBinder.Eval(Container.DataItem, "Contact_GB") %>&nbsp; <%# hashsp[DataBinder.Eval(Container.DataItem, "Province_GB")+""] %> <%# "级别:"+DataBinder.Eval(Container.DataItem, "intLevel") %> </a>
            </ItemTemplate>
          </asp:TemplateColumn>
          <asp:TemplateColumn HeaderText="服务专员">
            <ItemTemplate> <a href='index.aspx?Status=-1&keyword= <%# DataBinder.Eval(Container.DataItem, "SerStaff") %>'> <%# DataBinder.Eval(Container.DataItem, "RealName") %> </a> </ItemTemplate>
          </asp:TemplateColumn>
          <asp:TemplateColumn HeaderText="最后登入时间">
            <ItemTemplate> <%# GetLastLoginTime(Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "LastLogin")))%> </ItemTemplate>
          </asp:TemplateColumn>
          <asp:TemplateColumn HeaderText="首次付费/最后付费(消费)">
            <ItemTemplate> <%# GetFirstFinTime(Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "PayTime")))%> <%# GetLastFinTime(Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "CrTime")))%> </ItemTemplate>
          </asp:TemplateColumn>
          <asp:TemplateColumn HeaderText="用户余额">
            <ItemTemplate> <%#  finisok(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "intPay")),Convert.ToInt32(DataBinder.Eval(Container.DataItem, "totalamount")))?"":" <img src='/images/delete.gif'/>"  %> <a href='../user/finlist.aspx?UserName= <%# DataBinder.Eval(Container.DataItem, "SerStaff") %>'> <%# DataBinder.Eval(Container.DataItem, "intPay") %> </a> </ItemTemplate>
          </asp:TemplateColumn>
          <asp:TemplateColumn HeaderText="消费额度">
            <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Xiaofei") %> &nbsp;&nbsp; <%# GetDisp((string)DataBinder.Eval(Container.DataItem, "UserName")) %> </ItemTemplate>
          </asp:TemplateColumn>
          </Columns>
        </asp:datagrid>


以上就是页面代码了 , 我现在要通过 点 用户余额进行双向排序,怎么解决? 多谢!
Yellows的主页 Yellows | 初学一级 | 园豆:45
提问于:2009-09-11 12:07
< >
分享
最佳答案
0

protected void Articlelist_Sorting(object sender, GridViewSortEventArgs e)
    {
        ViewState["SortExpression"] = e.SortExpression;
        string sortDirection = ViewState["SortDirection"].ToString();
        if (sortDirection == "asc")
        {
            sortDirection = "desc";
        }
        else
        {
            sortDirection = "asc";
        }

        ViewState["SortDirection"] = sortDirection;
        GridDataBind();//通过ViewState 修改绑定的条件 或修改DataView
    }

在 html 页面 AllowSorting="True"

“GridView” 我是这么做的你试着改改就行了。

收获园豆:8
Mr雨 | 小虾三级 |园豆:1199 | 2009-09-11 13:23
其他回答(2)
0

2中解决方法:

1、重写datagrid控件,在新定义的控件中重载点击某一列的事件;

2、用javascript控制

具体实现2种都比较复杂;

收获园豆:2
风之泪 | 园豆:232 (菜鸟二级) | 2009-09-11 12:53
0

楼上正解、GridView本身自带了排序的功能,只要添加事件.再把排序属性设置成true就可以了。

但是真正排序的代码,得自己写。楼上的对。

邢少 | 园豆:10926 (专家六级) | 2009-09-11 13:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册