2012-03-20 17 views
-2

グリッドビューでソートしようとするとispostbackプロパティがなくなり、sorintgが実行されますが、page_loadでispoastbackプロパティを使用しているときは機能しません。私にいくつかのソリューションを提案してください...ここに私のコードは、私はあなたがポストバックの上をPage_LoadでGridViewコントロールをデータバインドたと仮定ソートがうまくいきません

private string ConvertSortDirection(SortDirection sortDirection) 
    { 
     string newSortDirection = String.Empty; 

     switch (sortDirection) 
     { 
      case SortDirection.Ascending: 
       newSortDirection = "ASC"; 
       break; 

      case SortDirection.Descending: 
       newSortDirection = "DESC"; 
       break; 
     } 

     return newSortDirection; 
    }  

    protected void grd_productMaster_Sorting(object sender, GridViewSortEventArgs e) 
    { 
     DataTable dataTable = grd_productMaster.DataSource as DataTable; 

     if (dataTable != null) 
     { 
      DataView dataView = new DataView(dataTable); 
      dataView = (DataView)Session["dataview"]; 
      if (Session["dataview"] != null) 
      { 
       dataView.Sort = e.SortExpression + " " + ConvertSortDirection(e.SortDirection); 

       grd_productMaster.DataSource = dataView; 

       grd_productMaster.DataBind(); 
      } 
      else 
       Response.Write("Dataview is null"); 

     } 
    } 
+0

あなたは、それが働かないと言うことを意味します!IsPostBack(ispostbackではない)? Page_Loadで書かれたコードを送ってください –

+0

何か_ "私はpage_loadにispoastbackプロパティを使用していますが、動作していません"という意味ですか?ポストバック時に(イベントがトリガされる前に)GridViewをデータバインドすると、ソートイベント(または他のイベント)は発生しません。 –

+0

私はispostbackプロパティを与えている場合、ソートは機能していません... – user1280428

答えて

1

です。これにより、GridViewがイベントを発生させないようにします。代わりに、DataBind if(!IsPostback)のみをバインドする必要があります。

もちろん、grd_productMaster.DataSourceは、常にnullになりますが、最初は必要ありません。それに応じて、SortExpressionだけでデータソースをロードする必要があります。たとえば、in this wayです。

+0

私は私の質問の正しいコードを送ることができます。 – user1280428

+0

私は最後の2日間からこれを試しているから... – user1280428

+0

@ user1280428:C#の例もある私の提供されたリンクを見てください。 –

関連する問題