我在ASP2.0里面有一个页面包含一个GridView控件,该控件绑定了一个Dataset。Dataset中包含若干条用户的用户姓名和账户状态信息,其中账户状态信息只有两个值:0和1。我在页面文件中给GridView添加了一个模版列:image(其中的ImageUrl设为空)。我想在代码文件中实现如下效果:账户状态信息为零时显示一张图片,账户状态信息为一时显示另一张图片。图片放在网站的文件系统中。哪位大侠能告诉我如何实现啊,最好具体点。

解决方案 »

  1.   

    可以直接用ImageField,假设两幅图片分别是 status0.jpg 和status1.jpg,那么:
     <asp:ImageField DataImageUrlField="帐户状态" DataImageUrlFormatString="images/status{0}.jpg" HeaderText="状态"></asp:ImageField>
    就可以了
      

  2.   

    用模版列当然也可以,那么可以在RowDataBound事件处理程序中处理
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
                AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="AccessDataSource1" OnRowDataBound="GridView1_RowDataBound">
                <Columns>
     <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Image ID="Image1" runat="server" />
                        </ItemTemplate>
                    </asp:TemplateField>
    .....****************************************************************
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowIndex > -1)
            {
                DataRowView row = e.Row.DataItem as DataRowView;
                int status = Convert.ToInt32(row["用户状态"]);
                System.Web.UI.WebControls.Image img = e.Row.FindControl("Image1") as System.Web.UI.WebControls.Image;            if (status == 0)
                    img.ImageUrl = "........";
                else
                    img.ImageUrl = "........";
            }
        }//这更灵活一些,而ImageField更方便一些~~~~
      

  3.   

    //****在后台写一个函数
    public string DispalyUserState(string state)
    {
        string strTemp="";
        switch(state)
        {
           case "1":
               strTemp="images/1.gif";break;
           case "2":
               strTemp="images/2.gif";break;
        }
        return strTemp;
    }//****在前台模版列中邦定
    <img src='<%#DispalyUserState(DataBinder.Eval(Container.DataItem,"State").ToString())%>' border='0' align='absmiddle'/>
      

  4.   

    1.数据源绑定GridView
    2.显式得到图片控件
    3.判断0或者1以后,对图片的地址赋值即可。
      

  5.   

    呵呵,谢谢各位,我用零零伍的第一个方法直接把问题解决了。我刚学ASP。Net很多东西都不懂,不熟悉,各位多多指教了。