GridView控件使用经验

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle Width="60px" />
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Font-Bold="True" ForeColor="Green" Text='<%# Eval("RuleOrder") %>'></asp:Label>
{
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#C0C0FF';this.style.cursor='hand';");
//当鼠标移走时还原该行的背景色
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(12).Attributes.Add("onclick", "return confirm('你确认要删除吗?')")
End If
End Sub
c#代码
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
下图是我做的规则显示的效果图,有些规则太长,我要做到的是,当标题超出一定长度时我加省略号,当标题在一定长度范围内时,全标题显示:
http://p.blog.csdn.net/images/p_blog_csdn_net/j_jake/22.jpg
效果如上,那么这种效果我们如何实现呢?,在GridView绑定的时候要做什么工作?
而原来在onRowDeleting事件中写的代码完全不用改变。鼠标在GridView上移动时变换颜色2007-03-25 14:26protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow )
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="规则标题">
<ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" CssClass="grid1" Height="20px" />
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
e.Row.Cells[5].Visible = false;
}
2\获取所选列的数据:DataGrid可以直接通过所选行来获取,GridView同样的代码无法运行。GridView可以通过GridViewRow来获取。BtnAudit是模版列中的按钮。
那我们可以通过下面方法给GridView删除前加上一个确认对话框。
首先,在GridView的属性对框话框中点击“Columns”进入它的"字段"设计器;或者在设计窗口直接点击GridView控件右上角的那个小箭头,点击"编辑列",进入"字段"设计器。
接着在"字段"设计器中的左下方"选定的字段"框中,选择以前已加上的那个CommandField“删除”列,这时在右边它的属性列表下会看到一个"将此它段转换为TemplateFied"的项,点击将它转换为TemplateFied列。
接下来我们来看实现思路:其实说起来很简单,我们在这里将采用模板列,在模版列里拖入一个label控件来进行数据绑定,它的text属性绑定的时候用一个条件表达式来判断是全部绑定标题文字还是只绑定部分标题文字+省略号;它的tooltip属性就直接绑定标题字段,这样我们的鼠标移上去就可以显示标题的全部内容了,绑定代码如下:
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"></asp:CheckBox>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("EventID") %>' Visible="false"></asp:TextBox>
<Columns>
<asp:TemplateField ShowHeader="False" HeaderText="选择">
<ItemStyle Width="60px" Wrap="wk.baidu.comalse" />
<HeaderTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"></asp:CheckBox>
CommandName="Delete" Text="删除"></asp:LinkButton>
</ItemTemplate>
最后在<asp:LinkButton>中加入:OnClientClick="return confirm('您确认删除该记录吗?');"
这样点击删除时就会先在客户端弹出“您确认删除该记录吗?”对话框,点击"确定",则进行删除;点击"取消",则不删除.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="RuleId" Width="100%" ShowHeader="False" GridLines="None">
<Columns>
</ItemTemplate>
</asp:TemplateField>
前言:在我们做WEB开发的过程中,经常会遇到GridView中的某些字段太长了,如果全部显示出来就会使排版混乱,影响美观,尤其是在我们做新闻系统时肯定会遇到,比如显示新闻列表的gridview,页面的版面已设计美观,但是有的新闻标题过长,我们希望只显示一定长度,后面加省略号,然后当鼠标移上去时再显示标题的全部内容,这样就即做到了不影响版面的布局,又做到了标题内容的全部显示.
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor");
}
}
RowCreated:开被创建时发生
e.Row.RowType == DataControlRowType.DataRow判断是否是数据行
DataControlRowType的枚举有:
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("HtmlPath") %>' ToolTip='<%...# Eval("RuleTitle")%>'
Text='<%...# Eval("RuleTitle").ToString().Length>16?Eval("RuleTitle").ToString().Substring(0,16)+"...":Eval("RuleTitle") %>' Font-Bold="True"></asp:HyperLink>
}
不足。前端页面代码过多。站带宽。
在GridView的第一列使用CheckBox控制每一行数据,是经常使用的,这里面我要记录的是全选、全消、选中行的底色更改,还有就是在提交数据的时候,取选中的行的编号等功能
aspx页面定义:
<asp:GridView ID="GridView1" runat="server">
gridview添加删除确认对话框
方法一:
VB代码
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
DataRow数据行
EmptyDataRow
Footer
Header
Pager
Separator
如果对单元格进行变换。
if (e.Row.Cells[8].Text == "USA")
{
//e.Row.BackColor = System.Drawing.Color.Red; //修改整行的颜色
e.Row.Cells[8].BackColor = System.Drawing.Color.Red; //修改单元格的颜色(第9列)
GridView控件使用经验2007年12月05日星期三下午12:47GridView控件是Asp.net 1.1版本流行控件DataGrid的继承者,功能比DataGrid增强不少,但是也有很大的不同啊。将最近使用这个控件的经验同各位同学分享如下:
1\掩藏字段的处理:DataGrid可以将字段直接设置为Visible=false,可以通过Cell[x].Text取到值。GridView这个功能失效了,可以使用运行时来设定该列为掩藏。处理RowDataBound事件。
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[5].Attributes.Add("onclick", "return confirm('你确认要编辑吗?')");
}
}
方法二
在VS2005提供的GridView中我们可以直接添加一个CommandField删除列:<asp:CommandFieldShowDeleteButton="True" />,然后在GridView的OnRowDeleting事件中完成删除。但一般情况下我们在做这种删除操作时都需要先让用户确认一下,然后后再删除记录,以避免误操作引起的误删除。
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
从上面的代码可以看出,我绑定Label控件的Text属性的时候用了条件表达式,当数据库中的标题长度大于16时,则截取前16个字符加上省略号进行显示,当小于16时,就全部绑定.ToolTip属性直接帮定标题字段,鼠标移上去就可显示全部标题了。(题外话,如果你作的是新闻发布系统,你也可以在Text属性的后面再加上一个发布日期的绑定字段,这样标题,日期全出来聊,呵呵,可以灵活应用,举一反三)
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnRefuse" runat="server" OnClick="btnRefuse_Click" Text="拒绝" OnClientClick="return confirm('你真的要拒绝这个用户加入俱乐部?')"/>
GridViewRow grdRow = (GridViewRow)btnAudit.Parent.Parent;string strId = grdRow.Cells[0].Text;
string memberId = grdRow.Cells[5].Text;
3\最终删除一条数据之前进行确认,这个可以使用摸版列,在摸版列中放置按钮控件,其中有一个客户端事件onclientclick,这里可以写确认处理javascript脚本.例如:
然后退出"字段"设计器,切换到源码视图你会发现该列已由原来的:
<asp:CommandField ShowDeleteButton="True" />
变为了:
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
相关文档
最新文档