首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

大姐 帮忙看看那里有错

2012-02-23 
各位大哥大姐 帮忙看看那里有错啊我怎么一点ButtonSort_Clickdatagrid怎么就不显示拉我是做一个自动生成da

各位大哥大姐 帮忙看看那里有错啊
我怎么一点   ButtonSort_Click     datagrid怎么就不显示拉
我是做一个自动生成datagrid,   ButtonSort_Click从新排序datagrid里的数据

页面代码
<form   id= "Form1 "   method= "post "   runat= "server ">
<asp:button   id= "ButtonCSV "   style= "Z-INDEX:   101;   LEFT:   288px;   POSITION:   absolute;   TOP:   272px "
runat= "server "   Text= "CSV "> </asp:button> <asp:datagrid   id= "DataGrid1 "   style= "Z-INDEX:   105;   LEFT:   184px;   POSITION:   absolute;   TOP:   72px "
runat= "server "   AutoGenerateColumns= "False "   PageSize= "2 ">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<FONT   face= "MS   UI   Gothic "> NO </FONT>
</HeaderTemplate>
<ItemTemplate>
<asp:Button   id= "Button1 "   runat= "server "   Text= " <%#((DataGridItem)Container).ItemIndex+1%> "   CommandName= "Select ">
</asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid> <asp:button   id= "ButtonReturn "   style= "Z-INDEX:   102;   LEFT:   352px;   POSITION:   absolute;   TOP:   272px "
runat= "server "   Text= "Return "> </asp:button> <asp:dropdownlist   id= "DropDownList1 "   style= "Z-INDEX:   103;   LEFT:   128px;   POSITION:   absolute;   TOP:   272px "
runat= "server "> </asp:dropdownlist> <asp:button   id= "ButtonSort "   style= "Z-INDEX:   104;   LEFT:   224px;   POSITION:   absolute;   TOP:   272px "
runat= "server "   Text= "Sort "> </asp:button> </form>

页面后台代码

using   System;
using   System.Collections;
using   System.ComponentModel;
using   System.Data;
using   System.Drawing;
using   System.Web;
using   System.Web.SessionState;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.HtmlControls;
using   WebDSP.common;  

namespace   WebDSP
{
///   <summary>
///   Summary   description   for   frmShowTable.
///   </summary>
public   class   frmShowTable   :   System.Web.UI.Page
{
protected   System.Web.UI.WebControls.DropDownList   DropDownList1;
protected   System.Web.UI.WebControls.Button   ButtonCSV;
protected   System.Web.UI.WebControls.Button   ButtonReturn;
protected   System.Web.UI.WebControls.Button   ButtonSort;
protected   String   sql;
protected   System.Web.UI.WebControls.DataGrid   DataGrid1;
protected   DataSet   Dt   =   new   DataSet();

protected   ArrayList   arrayList   =   new   ArrayList();


private   void   Page_Load(object   sender,   System.EventArgs   e)
{
MakeGrid();
if(!Page.IsPostBack)
{
BindGridData();
DropDownListDataBind();
}
}

protected   void   BindGridData()


{
//MakeGrid();
sql   =   Request.QueryString[ "strsql "];
DataTable   dt   =   DBFactory.ExecuteQuery(sql);
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
}  

protected   DataGrid   MakeGrid()
{
DataGrid1.AutoGenerateColumns=false;
DataGrid1.AllowPaging=true;  
DataGrid1.PageSize=5;
DataGrid1.PagerStyle.Mode=PagerMode.NumericPages;
DataGrid1.PageIndexChanged   +=   new   System.Web.UI.WebControls.DataGridPageChangedEventHandler(DataGrid1_PageIndexChanged);
                       
Dt   =   (DataSet)Session[ "XML "];
string   headerText;
string   dataField   =   " ";
int   column   =   1;
BoundColumn   FirstName;
for(int   i   =0;   i   <   Dt.Tables[ "select "].Rows.Count;   i++)
{
if(Dt.Tables[ "select "].Rows[i][1].ToString()== "PRN ")
{
headerText   =   Dt.Tables[ "select "].Rows[i][2].ToString().Trim();
for(int   j=0;j <Dt.Tables[ "orderby "].Rows.Count;j++)
{
if(Dt.Tables[ "orderby "].Rows[j][0].ToString()   ==   headerText)
{
dataField   =   Dt.Tables[ "orderby "].Rows[j][1].ToString().Trim();
arrayList.Add(dataField);
string   []u   =   dataField.Split(new   char[]{ '. '});
                                                        dataField   =   u[u.Length-1];
break;
}
}
FirstName=new   BoundColumn();
                                        DataGrid1.Columns.AddAt(column++,   FirstName);
FirstName.HeaderText   =   headerText;
FirstName.DataField   =   dataField;
}
}
return   DataGrid1;
}


private   void   DataGrid1_ItemCommand(object   source,   System.Web.UI.WebControls.DataGridCommandEventArgs   e)  
{  
}


#region   Web   Form   Designer   generated   code
override   protected   void   OnInit(EventArgs   e)
{
//
//   CODEGEN:   This   call   is   required   by   the   ASP.NET   Web   Form   Designer.
//
InitializeComponent();
base.OnInit(e);
}

///   <summary>
///   Required   method   for   Designer   support   -   do   not   modify
///   the   contents   of   this   method   with   the   code   editor.
///   </summary>
private   void   InitializeComponent()
{        
this.ButtonCSV.Click   +=   new   System.EventHandler(this.ButtonCSV_Click);
this.ButtonReturn.Click   +=   new   System.EventHandler(this.ButtonReturn_Click);
this.ButtonSort.Click   +=   new   System.EventHandler(this.ButtonSort_Click);
this.DataGrid1.ItemCommand   +=   new   System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);


this.DataGrid1.ItemDataBound   +=   new   System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
this.DataGrid1.SelectedIndexChanged   +=   new   System.EventHandler(this.DataGrid1_SelectedIndexChanged);
this.Load   +=   new   System.EventHandler(this.Page_Load);

}
#endregion

private   void   DataGrid1_PageIndexChanged(object   source,   System.Web.UI.WebControls.DataGridPageChangedEventArgs   e)  
{  
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;  
DataGrid1.DataBind();
}


private   void   ButtonSort_Click(object   sender,   System.EventArgs   e)
{
//SortExpression   =   e.SortExpression.ToString();
sql   =   Request.QueryString[ "strsql "];
int   subsql   =   sql.IndexOf( "ORDER ");
sql.Substring(0,subsql);
Session[ "SortField "]=DropDownList1.SelectedValue;
if(Session[ "Order "]==null)
{
Session[ "Order "]   =   "ASC ";
}
Session[ "Order "]   =   (Session[ "Order "].ToString()== "DESC ")? "ASC ": "DESC ";
if(Session[ "SortField "]!=null)
{
sql   +=   "   ORDER   BY   "+Session[ "SortField "].ToString()   +   "   "   +   Session[ "Order "].ToString();
}
//MakeGrid();
DataTable   dt   =   DBFactory.ExecuteQuery(sql);
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
}
               
private   void   DropDownListDataBind()
{
Dt   =   (DataSet)Session[ "XML "];
DropDownList1.DataSource   =   Dt.Tables[ "orderby "].DefaultView;
DropDownList1.DataTextField   =   Dt.Tables[ "orderby "].Columns[0].ToString();
                        DropDownList1.DataValueField   =   Dt.Tables[ "orderby "].Columns[1].ToString();
DropDownList1.DataBind();  
}


private   void   DataGrid1_SelectedIndexChanged(object   sender,   System.EventArgs   e)
{
BindGridData();
string   dataText,dataField,paraString;
paraString   =   " ";
for(int   i=1;i <DataGrid1.Columns.Count;i++)
{
dataText   =   DataGrid1.SelectedItem.Cells[i].Text.ToString();
//dataField   =   ((BoundColumn)DataGrid1.Columns[i]).DataField;
                                dataText   =   " ' "   +dataText+ " ' ";
dataField   =   arrayList[i-1].ToString();
                                paraString   +=   dataField     + "= "+   dataText   +   "   and   ";
}
                        paraString   =   paraString.Substring(0,paraString.Length-4).Trim();
paraString   =   "   "   +paraString;
Response.Redirect( "../WebDSP/frmTableMain.aspx?paraString= "+paraString);
}


}
}

[解决办法]
去掉Page_Load第一行 MakeGrid();
另一楼不要误导
动态创建的控件,页面刷新的时候保持不住--> 可以保存的,但是数据填充一定要在控件被加载后

热点排行