62,075
社区成员
发帖
与我相关
我的任务
分享
<%@ Page Language="C#" AutoEventWireup="true" EnableEventValidation = "false" CodeFile="DropDownLIst.aspx.cs" Inherits="_20100608_Default" %>
<%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix="webdiyer" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="grd" runat="server" BackColor="White" BorderColor="#E7E7FF"
BorderStyle="None" BorderWidth="1px" CellPadding="3"
GridLines="Horizontal" AutoGenerateColumns="False">
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<Columns>
<asp:BoundField DataField="ID" />
<asp:BoundField DataField="Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList runat="server" ID="ddl" Width="50px" AutoPostBack="true">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem Selected="True">2</asp:ListItem>
</asp:DropDownList></ItemTemplate>
</asp:TemplateField >
<asp:TemplateField HeaderText="123">
<ItemTemplate>
<asp:TextBox ID="txt" runat="server" ></asp:TextBox></ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<AlternatingRowStyle BackColor="#F7F7F7" />
</asp:GridView>
<asp:Button ID="btnDataToExcel" runat="server" Text="导入Excel" Width="166px"
onclick="btnDataToExcel_Click" />
<webdiyer:AspNetPager ID="PagerNet" runat="server" PageSize="5"
onpagechanged="PagerNet_PageChanged">
</webdiyer:AspNetPager>
</div>
</form>
</body>
</html>
、、后台代码
public partial class _20100608_Default : System.Web.UI.Page
{
DataSet ds=DBAccess.ExecuteDataset("Select row_number() over(order by Id) as num, * from person");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
OnBind();
}
}
private void OnBind()
{
PagerNet.RecordCount= 12;
DataView tb = ds.Tables[0].DefaultView;
tb.RowFilter = "num >= " + PagerNet.StartRecordIndex+" and num <= " +PagerNet.EndRecordIndex ;
//grd.DataSource = DBAccess.ExecuteDataset("select * from (Select row_number() over(order by Id) as num, * from xls) n where n.num between " + PagerNet.StartRecordIndex + "and " + PagerNet.EndRecordIndex);
grd.DataSource = tb;
grd.DataBind();
for (int j = 0; j < grd.Rows.Count; j++)
{
DropDownList drp = grd.Rows[j].FindControl("ddl") as DropDownList;
drp.Items.Insert(0,"AA");
}
}
public void DisableControls(GridView gv)
{
for (int i = 0; i < gv.Rows.Count; i++)
{
DropDownList drp = grd.Rows[i].FindControl("ddl") as DropDownList;
Label lb = new Label();
lb.Text = drp.SelectedItem.Text;
grd.Rows[i].Cells[2].Controls.Add(lb);
grd.Rows[i].Cells[2].Controls.RemoveAt(1); ;
TextBox txt = grd.Rows[i].FindControl("txt") as TextBox;
lb = new Label();
lb.Text = txt.Text;
grd.Rows[i].Cells[3].Controls.Add(lb);
grd.Rows[i].Cells[3].Controls.RemoveAt(1); ;
}
}
protected void btnDataToExcel_Click(object sender, EventArgs e)
{
StringWriter objStringWriter = new StringWriter();
HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);
this.grd.AllowPaging = false;
grd.DataSource = ds;
grd.DataBind();
DisableControls(grd);
grd.RenderControl(objHtmlTextWriter);
string style = @"<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><style> .text { mso-number-format:\@; } </style></head><body>";
Response.Clear();
Response.Buffer = true;
Response.AppendHeader("Content-Disposition", "attachment;filename=123.xls");
Response.ContentType = "application/ms-excel ";
Response.Write(style);
Response.Write(objStringWriter.ToString());
Response.Write("</body></html>");
Response.End();
OnBind();
}
public override void VerifyRenderingInServerForm(System.Web.UI.Control control)
{
//== 處理 GridView的控制項。 'GridView' 必須置於有 runat=server 的表單標記之中
//== http://msdn.microsoft.com/zh-tw/library/system.web.ui.page.verifyrenderinginserverform(VS.80).aspx
//—註解:或是在 Web.Config檔案裡面,增加這一行<pages enableEventValidation ="false" ></pages> 就可以免除上面這個事件。
}
protected void PagerNet_PageChanged(object sender, EventArgs e)
{
OnBind();
}
}