<Columns>
<asp:TemplateColumn>
<HeaderStyle Width="551px"></HeaderStyle>
<ItemStyle Width="551px"></ItemStyle>
<ItemTemplate>
<table height="170" width="550" border="0">
<tr>
<td>&nbsp;&nbsp;&nbsp;&nbsp;<img src='pic/<%# MyFunc(DataBinder.Eval(Container.DataItem,"id").tostring())%>.jpg' width="120px" height="165px"></td>
<td>&nbsp;&nbsp;【图书名称】<font color="red"><%# DataBinder.Eval(Container.DataItem,"name")%></font>
<p>
<FONT color="black">&nbsp;&nbsp;【市场价】<%# DataBinder.Eval(Container.DataItem,"price")%>
<p>
&nbsp;&nbsp;【会员价】<%# DataBinder.Eval(Container.DataItem,"vprice")%>
<p>public cc,vv as string
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim conn As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(ConfigurationSettings.AppSettings("LawConnStr"))
        Dim sql As String
        Dim Cmd As New System.Data.SqlClient.SqlCommand(sql, conn)
        If Not IsPostBack Then
            Try
                Dim rd As System.Data.SqlClient.SqlDataAdapter
                Dim ds As DataSet
                Dim dv As DataView
                conn.Open()
                sql = "SELECT * FROM shop where id=" & CInt(Request("id"))
                rd = New System.Data.SqlClient.SqlDataAdapter(sql, conn)
                ds = New DataSet
                rd.Fill(ds, "shop")
                dv = ds.Tables("shop").DefaultView
                Cmd.CommandText = sql
                Dim objreader As System.Data.SqlClient.SqlDataReader = Cmd.ExecuteReader()
                objreader.Read()
                cc = objreader("lei1")
                vv = objreader("lei2")
                    DataGrid1.DataSource = dv
                    DataGrid1.DataBind()
                Catch es As Exception
                Response.Write("<script language=javascript>" & Chr(13) & "alert('" & es.Message & "'); " & " </script>")
            Finally
                conn.Close()
            End Try
        End If
    End Sub上面是datagrid模板列部分代码
当cc读取为m时,datagrid显示
【市场价】<%# DataBinder.Eval(Container.DataItem,"price")%>
当cc读取为f时,datagrid显示
【会员价】<%# DataBinder.Eval(Container.DataItem,"vprice")%>
当cc读取为t时,datagrid显示
【发货价】<%# DataBinder.Eval(Container.DataItem,"tprice")%>
..............请问高手怎么实习啊,谢谢!

解决方案 »

  1.   

    public int get_value(int i) {
     if (i==10)
     return 100;
    if (i==100)
    return 1000;
    else
    return 0 ;
    }
      这样调用 
    <a>当输入为10时</a><% get_value(10)%>
    <a>当输入为100</a><% get_value(100)%>
      

  2.   

    <%# YesORNo(DataBinder.Eval(Container.DataItem, "intmove").ToString().Trim()) %>'
    runat="server" Width="100"/> public int YesORNo(int i){
    if (i==10)
    return 100;
    if (i==100)
    return 1000;
    else
    return 0 ;
    }这样调用
      

  3.   

    to  boytomato(深爱一人叫颖的女孩!) :public int YesORNo(int i)中的i是指什么啊,yyy<%# YesORNo(DataBinder.Eval(Container.DataItem, "intmove").ToString().Trim()) %>
    上面的intmove也是根据条件显示不同的啊,还有最前面的yyy也是要根据条件显示不同的啊?怎么实现啊??   可以再请清楚一点吗? 谢谢好像要在模板列里写if语句吧,符合条件就执行,否则就执行下一个elseif,是这样的吗???怎么写啊??
      

  4.   

    程序中写一个判断函数... 
     public int YesORNo(int i)  //i是参数啊...你可以改变他的类型...{  //这是随便写的一个..你在这要处理判断... 
    if (i==10)
    return 100;
    if (i==100)
    return 1000;
    else
    return 0 ;
    }
    在<%# YesORNo(DataBinder.Eval(Container.DataItem, "cc").ToString()) %>你不是根据 cc 值不同时显示的不同值吗....
      

  5.   

    谢谢,cc不是数据表里的字段,也可以这样写吧?还有
    <%# YesORNo(DataBinder.Eval(Container.DataItem, "cc").ToString()) %>
    最前面是有汉字的,也是根据cc值不同显示不同的,(是不是要把在模板列里写if才可以啊???)最后就是如果没有符合的条件,整个语句都不显示的,包括最前面的汉字也不显示,怎么实现啊??谢谢!!!!!!!!!!
      

  6.   

    public int YesORNo(int i)他这个函数就是实现根据cc值不同显示不同的
      

  7.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=F73EF6AD-6878-4748-B963-5181252E5AED
      

  8.   

    这么来写
    <%# ChangeToPrice(DataBinder.Eval(Container.DataItem,"cc").ToString(), DataBinder.Eval(Container.DataItem,"price").ToString(),DataBinder.Eval(Container.DataItem,"vprice").ToString(),DataBinder.Eval(Container.DataItem,"tprice").ToString()) %>
    后台(C#的,VB不会写)
    public string ChangeToPrice(String cc, String price, String vprice, String tprice)
    {
      if (cc == "m")
        return price;
      else if (cc == "f")
        return fprice;
      else
        return vprice;
    }
    这么写可能有些烦琐,你也可以再在ChangeToPrice中取一次数据,不过那你还得传相应的书籍编号,也不轻松。
      

  9.   

    string s=2; //你可以改变 s  的值看看变化  private void  DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item || 
    e.Item.ItemType == ListItemType.AlternatingItem)
    {
    Label change = (Label)e.Item.FindControl("change");
           
    if (s==1)
    {
    change.Text =((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString();
    }
    else
    {
                      change.Text = ((DataRowView)e.Item.DataItem).Row.ItemArray[2].ToString();
    } } } <asp:DataGrid id=DataGrid1 style="Z-INDEX: 101; LEFT: 88px; POSITION: absolute; TOP: 72px" runat="server" Width="360px" Height="224px" DataSource="<%# dataSet11 %>" DataMember="Products" AutoGenerateColumns="False">
    <Columns>
    <asp:BoundColumn DataField="Expr1" SortExpression="Expr1" HeaderText="Expr1"></asp:BoundColumn>
    <asp:BoundColumn DataField="Expr2" SortExpression="Expr2" HeaderText="Expr2"></asp:BoundColumn>
    <asp:BoundColumn DataField="Expr3" SortExpression="Expr3" HeaderText="Expr3"></asp:BoundColumn>
    <asp:BoundColumn DataField="UnitPrice" SortExpression="UnitPrice" HeaderText="UnitPrice"></asp:BoundColumn>
    <asp:BoundColumn DataField="UnitsInStock" SortExpression="UnitsInStock" HeaderText="UnitsInStock"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="判断">
    <ItemTemplate>
    <asp:Label ID="change" Runat="server"></asp:Label>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid></FONT>
      

  10.   

    1. aspx 页里可以这样写:
    <% if (..) %>
    <% { %>
    <p>
    <FONT color="black">&nbsp;&nbsp;【市场价】<%# DataBinder.Eval(Container.DataItem,"price")%>
    <p>
    <% } %>
    <% else if (..) %>
    <% { %>
    ...
    <% } %>
    <% else %>
    <% { %>
    ...
    <% } %>2.也可以在.cs里写
    datagrid 的onitemdatabound事件
    e.item.cells[i].text = "";//这里可以拼出要输出的html,注意"""用"\""代替.
      

  11.   

    谢谢各位高手!!!  谢谢lemong(風之影):我想要的就是这种方法,只是不知道在模板列里怎么写if语句现在问题解决!   给分了!!