1: 在DataGride中嵌套Button的运用
修改的时候:修改的Button 的CommandName为Edit
保存的时候:保存的Button 的CommandName为Update
取消的时候:保存的Button 的CommandName为Cancel
取消的时候:保存的Button 的CommandName为Delete
其中对应的事件为:
private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid.EditItemIndex=-1;
//在调用绑定方法
}
-------------------------------------------------------
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid.EditItemIndex=e.Item.ItemIndex;
//在调用绑定方法
}
-------------------------------------------------------
private void DataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//写入其更新的方法
this.DataGrid1.EditItemIndex=-1;
//在调用绑定方法
}
-------------------------------------------------------
private void DataGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//写入删除的方法
//在调用绑定方法
}
----------------------------------------------------------------------------------
2: 在DataGride中嵌套CheckBox的运用
private void Button2_Click(object sender, System.EventArgs e)
{
for(int i=0;i<this.DataGrid.Items.Count;i++)
{
(1)CheckBox cb=(CheckBox)this.DataGrid.Items[i].FindControl ("CheckBox2"); //查找CheckBox的ID
(2)CheckBox box = (CheckBox)this.DataGrid.Items[i].Cells[5].FindControl("select1");//两者不同的是它取的是第几单元行的CheckBox
if(cb.Checked) //是否选择
{
this.DataGrid.Items[i].Cells[0].Text//单元格的值的时候必须绑定列
为模板列时,取不到值
//在调用其相应方法
}
}
//在调用绑定方法
}
--------------------------------------------------------
3: 在DataGride中DataBuding的运用
(1):用的是HyperLink
<asp:HyperLink id=HyperLink2 runat="server" Width="134px" Text='<%# DataBinder.Eval(Container, "DataItem.Product_name") %>' NavigateUrl='<%# "lookcg.aspx?lookid="+(DataBinder.Eval(Container, "DataItem.Product_id")) %>'> </asp:HyperLink> //Text的文本类容Product_name
//NavigateUrl的链接Product_id
Text='<%# DataBinder.Eval(Container, "DataItem.Trade_downdate", "{0:MM}/{0:dd}") %>'> //Text的文本类容Trade_downdate(时间)
//{0:yyyy-MM-dd HH24:mm:ss}(时间的格式)
--------------------------------------------------------
(2):输入的时间
try
{
if(DateTime.Parse(输入的时间, System.Globalization.DateTimeFormatInfo.InvariantInfo)<DateTime.Now)
{}//输入的时间要大于当前时间
else
{}//输入的时间正确
}
catch
{}//输入时间错误
------------------------------------------------------
(3):HTML代码分析
<asp:datagrid CellPadding="3" BorderWidth="1px" ShowHeader="是否显示头"
BorderColor="#FEE8D1" PageSize="显示几页" AllowPaging="True" HorizontalAlign="Center" AutoGenerateColumns="False"> <SelectedItemStyle HorizontalAlign="Center"></SelectedItemStyle>
//选择项HorizontalAlign为对其方式
<EditItemStyle HorizontalAlign="Center"></EditItemStyle>
//编辑项HorizontalAlign为对其方式
<AlternatingItemStyle HorizontalAlign="Center" BackColor="SeaShell"></AlternatingItemStyle>
//交替项HorizontalAlign为对其方式
<ItemStyle HorizontalAlign="Center" Height="100px" VerticalAlign="Middle" BackColor="White"></ItemStyle>
//普通项HorizontalAlign为对其方式
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
//DataGride头的其方式
<FooterStyle HorizontalAlign="Center"></FooterStyle>
//DataGride尾的其方式
<Columns> //DataGride行的开始
<asp:BoundColumn Visible="不可见的" DataField="Product_id">//绑定列
<HeaderStyle Width="1px"></HeaderStyle> <ItemStyle HorizontalAlign="Left" Width="1px" VerticalAlign="Top"></ItemStyle> </asp:BoundColumn>
<asp:TemplateColumn>//模板列 <HeaderStyle Width="110px"></HeaderStyle> //头的宽度 <ItemStyle HorizontalAlign="Center" Width="110px" VerticalAlign="Middle"> </ItemStyle>
<ItemTemplate> //编辑
<asp:Image class=bd_hui_all id=Image1 runat="server" Width="100px" ImageUrl='<%# DataBinder.Eval(Container, "DataItem.product_image2") %>' Height="80px">
</asp:Image>
</ItemTemplate>
</asp:TemplateColumn>
----------------------------------------------------------
(4):自定义分页
this.pages.Text = (this.DataGride.CurrentPageIndex + 1) + "/" + this.DataGride.PageCount;//获取总页数除以一页显示几条信息
this.DropDownList1.Items.Clear();
for( int i = 1 ; i <= this.DataGride.PageCount; i++)
{
this.DropDownList1.Items.Add(new ListItem("第"+i+"页",i.ToString()));
}
this.DropDownList1.SelectedValue = Convert.ToString(this.DataGride.CurrentPageIndex + 1);
----------------------------------
LinkButton lb = (LinkButton)sender;
switch (lb.ID)
{
case "lb1":
this.DataGride.CurrentPageIndex = 0;
break;
case "lb2":
if (this.DataGride.CurrentPageIndex > 0)
this.DataGride.CurrentPageIndex -= 1;
break;
case "lb3":
if (this.DataGride.CurrentPageIndex < (this.DataGride.PageCount - 1))
this.DataGride.CurrentPageIndex += 1;
break;
case "lb4":
this.DataGride.CurrentPageIndex = this.DataGride.PageCount - 1;
break;
}
---------------------------------------------------------------------------- 4: 在DataGride中其它的运用
(1):上传文件
FileInfo f1=new FileInfo(this.File3.PostedFile.FileName);
string type1=f1.Extension.ToUpper();
string dataName1=DateTime.Now.ToString("yyMMddhhmmss");
if(this.File1.PostedFile.ContentLength > 500*1024)
{} //文件过大
else
{
string path1=Server.MapPath("//以有的文件路径")+"_new"+ type1;
//文件路径
if(type1==".JPG"||type1==".GIF")//文件的格式
{
this.File1.PostedFile.SaveAs(path1);
string image=""//数据库的文件路径
}
else
{}
}
------------------------------------------------
(2):自动读取
//要用服务器表
SqlConnection con = new SqlConnection(DAL.SQLHelper.CONN_STRING);
con.Open();
SqlCommand com = new SqlCommand(sql,con);
int getnumber=//第一个
int allnumber=//最后一个
SqlDataReader read = com.ExecuteReader();
System.Web.UI.WebControls.TableRow tr = new TableRow();
int i=getnumber;
int s=0;//设置一行几个
while(read.Read()&&i<allnumber)
{
i=++i;
System.Web.UI.WebControls.TableCell tc =new TableCell();
this.LoadControl("entityproduct.ascx");//查找控件
Label la =(Label)find.FindControl("id");
la.Text=i.ToString();
if(DAL.DbConn.checkusers(nb))
{
s++;
string bigname= DAL.DbConn.getmima(sqlid);
HyperLink hy =(HyperLink)find.FindControl("HyperLink1");
hy.Text=bigname.ToString();
hy.NavigateUrl=;
string urls =DAL.DbConn.getmima(sqlurl);
Image imagerul= (Image)find.FindControl("Image1");
imagerul.ImageUrl=urls.ToString();
tc.Controls.Add(find);
tr.Controls.Add(tc);
if(s%5==0)
{
this.服务器表.Rows.Add(tr);
tr = new TableRow();
}
if(s%5!=0)
{
this.服务器表.Rows.Add(tr);
}
}
}
if(s>5)
{
this.服务器表.Rows.Add(tr);
con.Close();
}
read.Close();