DataGrid特殊效果

一。DataGrid更新输入数据正则验证

RequiredFieldValidator
控件用来校验一个输入框中是否输入了值,RegularExpressionValidator控件用来进行正则表达是的匹配。关于正则表达式的说明请参阅其他资料.其中ControlToValidate属性就是需要校验的文本框的ID.标签中的文本就是在校验不成功的时候显示出来的提示,Display属性则是提示信息的显示方式.
DataGrid<Columns>标签内的内容就是DataGrid的列了,列中还可以添加模版列,对应每一模版列,可以有<ItemTemplate>,<EditItemTemplate>,<HeaderTemplate>,<FooterTemplate>几个标签,其中<ItemTemplate>就是DataGrid在正常显示的时候列的标签了,<EditTemplate>也就是在编辑状态中的DataGrid列的样式了.

aspx中

<asp:datagrid id="MyDataGrid" runat="server" BorderColor="#CCCCCC" Font-Size="100%" HorizontalAlign="Center"
       AutoGenerateColumns="False" OnDeleteCommand="MyDataGrid_Delete" OnSortCommand="Sort_Grid"
       OnPageIndexChanged="MyDataGrid_PageIndexChanged" DataKeyField="SID" PagerStyle-Position="Bottom"
       PagerStyle-HorizontalAlign="Center" PagerStyle-Mode="NextPrev" PageSize="10" AllowSorting="True"
       AllowPaging="True" CellPadding="4" Width="100%" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel"
       OnUpdateCommand="MyDataGrid_Update">

       <AlternatingItemStyle BackColor="#E9E9E6"></AlternatingItemStyle>
       <HeaderStyle Font-Bold="True" Wrap="False" ForeColor="White" BackColor="#999999"></HeaderStyle>
       <Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="更新"></asp:EditCommandColumn>
        <asp:TemplateColumn>
         <HeaderTemplate>
          順番
         </HeaderTemplate>
         <ItemTemplate>
          <%# this.MyDataGrid.CurrentPageIndex * this.MyDataGrid.PageSize + Container.ItemIndex+ 1%>
         </ItemTemplate>
        </asp:TemplateColumn>
<asp:BoundColumn DataField="SENO" SortExpression="SENO" ReadOnly="True" HeaderText="セ#"></asp:BoundColumn>

<asp:TemplateColumn>
        <HeaderTemplate>年月日</HeaderTemplate>
        <ItemTemplate><%# DataBinder.Eval(Container,"DataItem.TD_Time","{0:d}")%></ItemTemplate>
        <EditItemTemplate><asp:RegularExpressionValidator Runat=server ControlToValidate="txtDateTD"
         ErrorMessage="日期" ValidationExpression="(/d{4}|/d{2})//d/d?//d/d?"/>
           <asp:TextBox Runat=server ID="txtDateTD"></asp:TextBox>
        </EditItemTemplate></asp:TemplateColumn>


        </Columns>
       <PagerStyle NextPageText="后10件" PrevPageText="返回" HorizontalAlign="Center"></PagerStyle>
</asp:datagrid>

aspx.cs中

  protected void MyDataGrid_Update(Object sender, DataGridCommandEventArgs E)
  {
   string SID =(string)MyDataGrid.DataKeys[(int)E.Item.ItemIndex];
   string Updata1=((TextBox)E.Item.FindControl("txtDateTD")).Text;

    //数据库更新代码

   MyDataGrid.EditItemIndex = -1;
   BindGrid();
  }


     在这些标签中我们可以插入控件,然后在后台代码中用DataGrid1.Item[i].FindControls(
Coltrol Name)可以对DataGrid中的控件进行操作.也可以用   
if(e.Item.ItemType==ListItemType.Item)
   {
    e.Item.Cells[0].Attributes.Add("onclick", "return confirm('删除么?')");
   }
给删除链接添加确认框

     为了在DataGeid为编辑状态的时候控制DataGrid包含控件的状态,我们可以用CSS样式定义,将下面代码加入aspx文件的</head>和<Body>中,然后在<asp:TextBox>标签中加入CssClass=“myClass“即可改片控件的样式。(跟普通的方法没什么区别啦,呵呵。)

     <style type="text/css">.myTextBox { BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt; BORDER-LEFT: #000000 1px solid; WIDTH: 80px; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 20px }

     </style>


### 美化 DataGrid 控件的方法 #### 设置列头样式 为了使 `DataGrid` 的列头具有一致的外观,可以通过定义一个特定样式的资源来实现。此样式应用于所有列头,确保界面的一致性和美观度[^2]。 ```xml <Style x:Key="styleDataGridViewColumnHeader" TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="Height" Value="30"/> <Setter Property="Padding" Value="10 5 10 5"/> <Setter Property="Background" Value="#FFEEEEEE"/> <Setter Property="BorderBrush" Value="#FFFFFFFF"/> <Setter Property="BorderThickness" Value="0 0 1 0"/> </Style> ``` 上述 XAML 代码片段展示了如何通过设定背景颜色、边框画刷以及内边距等属性来自定义列头的视觉效果[^4]。 #### 定制单元格显示 对于 `DataGridCell` 控件而言,同样能够利用样式来进行个性化处理。这不仅限于改变文字的颜色或字体大小,还可以涉及更复杂的布局设计,比如添加图标或者调整内容对齐方式。 #### 整体控件优化建议 除了单独针对各个组成部分(如列头、单元格)进行美化外,还应该考虑整个 `DataGrid` 控件的整体协调性: - **行样式**:可以为每一行设置不同的鼠标悬停效果或是选中状态下的特殊表现形式; - **分隔线与间距**:适当增加各元素间的距离感有助于提高可读性; - **滚动条及其他交互细节**:确保即使在大量数据展示的情况下也能保持流畅的操作体验; 最后值得注意的是,在实际开发过程中应当依据具体应用场景灵活运用这些技术手段,并不断测试以找到最适合的设计方案[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值