一.列的添加和隐藏
1.动态添加列:其实原理很简单,只要知道datagrid中每个元素就是一个类,我们可以把它实例化,然后添加到datagrid中就行了。
1.使用模版列+<a href>
<asp:TemplateColumn SortExpression ="_i_resume_id" HeaderText =详情 HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" >
<ItemTemplate>
<a href='resumechoose1.aspx?id=<%# DataBinder.Eval(Container.DataItem,"id") %>&_i_position_id=<%# DataBinder.Eval(Container.DataItem,"_i_position_id") %>' target="_blank"> 查看 </a>
</ItemTemplate>
</asp:TemplateColumn>
<asp:HyperLinkColumn HeaderText ="" Text="申请调出" DataNavigateUrlField ="cid" DataNavigateUrlFormatString="javascript:NavSettingsPage('{0}',form.x_sqpc.value)" HeaderStyle-HorizontalAlign="Center" Target=mainFrame ItemStyle-HorizontalAlign="Center"/>
2.使用模版列+linkbutton
<asp:TemplateColumn HeaderText ="删除" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="x_del" OnClientClick="return confirm('确定要删除吗?');" OnCommand="DeleteInfo" runat="server" PostBackUrl='<%# "tbmaintain.aspx?type=del&id="+ Eval("id").ToString() %>'>删除</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
3.没有绑定的情况下,使用Session+<%=%>
<a href="../homepage.aspx?prono=<%=Session["ProNo"]%>">
三.GridView 中的各种查找
在RowDataBound 和RowCreated 事件里面 查找
1、当前行中的控件 e.Row.FindControl("TextBox1");
2、当前行 e.Row.RowIndex;
3、当前行的主键值 GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
在RowCommand事件里面 查找
RowCommand事件是GridView中的按钮触发的事件。只有这三个属性。
e.CommandName; //判断是哪个按钮。
e.CommandArgument; //你可以绑定任何你认为有用的值,默认是当前按钮所在的行号
e.CommandSource; //数据源
在GridView中的按钮Click事件里面
ImageButton button = (ImageButton)sender;
((GridViewRow)((DataControlFieldCell)button.Parent).Parent).RowIndex;//当前的行数
GridView1.DataKeys[Row_num].Value.ToString(); //当前行的主键值
(button.Parent.Parent as GridViewRow).FindControl("TextBox1");或
gvcgGrid.Rows[Row_num].FindControl("TextBox1");//查找当前行中的其他控件
查找 <FooterTemplate>模板中的控件
GridView1.FooterRow.FindControl("TextBox1") as TextBox
查找 <EmptyDataTemplate>模板中的控件
GridView1.Controls[0].Controls[0].Controls[0].FindControl("TextBox1") as TextBox;
在这里我之列了一些基本的查找,一个非常有意思的属性是Parent你可以根据他查找到你任何想要的东西。
四.链接添加提示
1.文本中添加:Text="<div onclick="return confirm('确定删除吗?')">删除</div>"
五.gridview模板列和删除标记
1.gridview显示为空,则提示“空!”: 用GridView自身就提供当内容为空时候的模板
<EmptyDataTemplate>
2.把标记删除传入id参数 : 先用模板列,在其中的item模板中加入linkbutton,然后在commandname="update",再编辑gridview中的update属性
<asp:LinkButton ID="LinkButton1" runat="server" PostBackUrl=' <%# "editpu.aspx?puid="+ Eval("articleid").ToString() %>'
gridview+linkbutton做标记删除
六.js实现纵横全选