设计,学生图片上传后的,作品展示页面.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="id" DataSourceID="AccessDataSource1" AllowPaging="True" 
            AllowSorting="True" CellPadding="4" ForeColor="#333333" GridLines="None">
            <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
            <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
里面,我添加了一列
<ItemTemplate>
  <asp:Image ID="Image1" runat="server" AlternateText='<%# Eval("owner_id") %>' 
                            ImageUrl='<%# Eval("file_url") %>' />
                    </ItemTemplate>
因为,图片大小不一,所以,我想在page_load中改变图片的大小:
 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
          For i = 0 To GridView1.Rows.Count - 1
                Dim tmpimage As Image = GridView1.Rows(i).FindControl("Image1")
                'tmpimage.Attributes.Add("onload", "this.width=120;this.height=90")
                tmpimage.Width = 120
                tmpimage.Height = 90
    End Sub
问题:第一次显示页面时候,图片大小是按照page_load来显示的,但是在我点了gridview的"下一页",或者"上一页"后,又变成图片的原始尺寸了.
个人分析:切页后,页面,又重新数据绑定.便得到原始的数值了.但是,按道理,应该用viewstate啊,我是菜鸟啊,虽然思考并修改了很多次.但是仍然无法改变.
还请大虾不吝教导!!谢谢!!!

解决方案 »

  1.   

    你在<asp:Image里指定一下宽度或高度之中的一个不就行了吗?
      

  2.   


    <asp:TemplateField>
        <ItemTemplate>
            <asp:Image Width="120" Height="90" ... />
      

  3.   

    那你就不要让分页后重新检索啊,
    比如将开始检索的值先放到session中,点分页时从session中取数据,别重新检索.
    可以试下看看。......
      

  4.   

    把显示图片的,写成一个用户控件,在控件中控制图片Width和Height
    然后再拉到GridView中去.
      

  5.   

    如果没有写if(!isPostBack)每次刷新页面都会重新设置图片大小的吧,
    会变回去吗??很诡异
      

  6.   

    感谢各位,1楼方法不错.是可以的.还有呢,我后来也摸索出来了一个方法:
    在 databinding事件里执行 page_load() 也可以达到效果.!1