设计Outlook式的排序标记时碰到的问题请进:
为了达到标题所述的目的,我在datagrid中使用了模板列,在标题模板中放了一个asp:button和一个asp:image,分别用来触发排序事件和显示排序标记。
在排序事件中我需要对排序标记进行更新,即asp:image的imageurl属性
因此我用到了findcontrol,代码如下:
Dim img As New WebControls.Image
img = FindControl("imgSort_LastUpdateDate")
img.ImageUrl = IIf(strSortAscending = "1", "image/arrow_up.gif", "image/arrow_down.gif")
模板列标题中的asp:image是手工加入的,id为imgSort_LastUpdateDate,runat="server",因此我在代码页中手工加入了声明部分
Protected WithEvents imgSort_LastUpdateDate As System.Web.UI.WebControls.Image
为什么执行到img = FindControl("imgSort_LastUpdateDate")
找不到该服务器控件,img=nothing
问题点数:0、回复次数:6Top
1 楼Aaronlau2002(爆裂旋风)回复于 2003-12-03 15:00:12 得分 0
我的模板列的html代码是这样的:
<asp:TemplateColumn SortExpression="LastUpdateDate" HeaderText="LastUpdateDate">
<HeaderTemplate>
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
<TD NOWRAP><asp:Button BorderStyle="None" Text="LastUpdateDate" Runat="server" CommandName="sort" CommandArgument="LastUpdateDate" /></TD>
<TD NOWRAP><asp:Image Runat="server" ID="imgSort_LastUpdateDate" ImageUrl="image/arrow_down.gif" /></TD>
</TR>
</TABLE>
</HeaderTemplate>
<ItemTemplate>
<asp:Label runat="server" Text='<%# Container.DataItem("LastUpdateDate") %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>Top
2 楼acewang(龍芯*Inside!)回复于 2003-12-03 15:02:09 得分 0
img = FindControl("imgSort_LastUpdateDate")
~~~~~~~~
需要你在DataGrid中遍历查找Top
3 楼jupiterII()回复于 2003-12-03 15:05:53 得分 0
应该是不需要遍历的。
DateGrid1.FindControl("imgSort_LastUpdateDate")Top
4 楼Aaronlau2002(爆裂旋风)回复于 2003-12-03 15:06:43 得分 0
怎么遍历?
是img=grid1.FindControl("imgSort_LastUpdateDate")吗?Top
5 楼Aaronlau2002(爆裂旋风)回复于 2003-12-03 15:09:58 得分 0
DateGrid1.FindControl("imgSort_LastUpdateDate")
试了,不行的Top
6 楼Aaronlau2002(爆裂旋风)回复于 2003-12-03 15:29:45 得分 0
高手请帮忙啊!
另外我自己跟踪监视了一下
发现datagrid的controls有好几层
datagridtable
datagriditem
datagridcell
...
就是找不到我要的控件:(Top




