asp.net 2.0控件一些有可能是bug的小问题:

本文探讨了ASP.NET中GridView控件的三个常见问题:Header和Footer显示异常、Header字体加粗属性无效以及DataGrid控件下特定情况的分页样式问题,并提供了相应的解决方案。

(1)不允许重新绑定的情况下,编码设置ShowHeader,ShowFooter属性:
页面上放一个 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="5" ShowFooter="True" AllowSorting="True"> </asp:GridView>
不使用DataSource控件,而是用编程方式对其进行绑定; 有两个按钮,一个是将ShowHeader,ShowFooter属性设置为True,另一个则是设置为False。执行,点击ButtonF,一次没反应,点两次,Header和Footer都不见了;再点击ButtonT,Header和Footer可能就不会再显示了。
用DataSource控件进行绑定就不会有这个问题,但是,这会自动从数据库读取数据并重新绑定。

ContractedBlock.gifExpandedBlockStart.gif
 1None.gifprotected void Page_Load(object sender, EventArgs e)
 2ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
 3InBlock.gif       if (!IsPostBack) this.BindTestData();
 4ExpandedBlockEnd.gif    }

 5None.gif    protected void BindTestData()
 6ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
 7InBlock.gif        //编码获取原始数据并绑定到GridView
 8ExpandedBlockEnd.gif    }

 9None.gif    protected void ButtonT_Click(object sender, EventArgs e)
10ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
11InBlock.gif        this.GridView1.ShowHeader = true;
12InBlock.gif        this.GridView1.ShowFooter = true;
13InBlock.gif        //this.GridView1.AllowPaging = true;
14InBlock.gif        
15ExpandedBlockEnd.gif    }

16None.gif    protected void ButtonF_Click(object sender, EventArgs e)
17ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
18InBlock.gif        this.GridView1.ShowHeader = false;
19InBlock.gif        this.GridView1.ShowFooter = false;
20InBlock.gif        //this.GridView1.AllowPaging = false;
21InBlock.gif        
22ExpandedBlockEnd.gif    }


(2)设置GridView的HeaderStyle.Font.Bold属性为False,没有效果:
这只是个小问题而已,但是明显是不对的。GridView控件的列头,会生成<th></th>标签,但是如果用户设置了该属性为False,应该要有所体现,然而没有,我们不得不通过下面的代码才能让列头不用粗体显示:
1None.gifprotected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
2ExpandedBlockStart.gifContractedBlock.gif    dot.gif{
3InBlock.gif        if (e.Row.RowType == DataControlRowType.Header)
4ExpandedSubBlockStart.gifContractedSubBlock.gif        dot.gif{
5InBlock.gif            foreach(TableCell cell in e.Row.Cells)
6InBlock.gif                cell.Attributes.Add("style","FONT-WEIGHT:normal");
7ExpandedSubBlockEnd.gif        }

8ExpandedBlockEnd.gif    }

9None.gif

(3)在asp.net 2.0中使用DataGrid控件,在下面的特定情况下Pager的样式会有变化:
None.gif<asp:DataGrid ID="DataGrid1" runat="server" AllowPaging="True" PageSize="2" AutoGenerateColumns="False">
None.gif        
<Columns>
None.gif            
<asp:BoundColumn DataField="id" HeaderText="ID"></asp:BoundColumn>
None.gif            
<asp:BoundColumn DataField="name" HeaderText="NAME"></asp:BoundColumn>
None.gif            
<asp:BoundColumn DataField="sex" HeaderText="SEX"></asp:BoundColumn>
None.gif            
<asp:TemplateColumn HeaderText="选择"><ItemTemplate>
None.gif
<asp:LinkButton id="LinkButton1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>' CommandName="Select"></asp:LinkButton>
None.gif
</ItemTemplate></asp:TemplateColumn>
None.gif        
</Columns>
None.gif        
<PagerStyle HorizontalAlign="Center" />
None.gif    
</asp:DataGrid>
绑定到DataSource控件或编码绑定到DataView,执行,尝试点击模版列中的LinkButton,Pager的样式会发生变化,原先整行的Pager变成了2个单元格。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值