前天遇到了一个问题如下在后台vb.net代码中的page_onload事件里面 得到了一个Integer类型的变量
可能值范围是 1-5我想在前台页面 根据这个变量的值 来将一个 比如说 lable, 循环显示这个变量值的次数后来自己琢磨了一下 用以下的方法解决了
1.后台定义一个global的变量 Public star As Integer = 0
2.然后再定义一个针对该变量值 所执行操作的方法
Function printStar() '我这个方法是打星星用的
If star = 0 Then
Response.Write("No Ranking Record")
Else
Dim i As Integer
For i = 0 To star - 1
Response.Write("<IMG src='img/ic_star.gif' height=15 width=15>")
Next
End If
End Function3.最后前台显示处对该方法进行调用
...<td> <%printStar()%> </td>...---------------------------------------------------------------------------------------今天又遇到了类似的问题 所不同的是:前台不是说某一处需要输出,而是在一个datalist里面的循环里面,根据记录集的每一条记录中的一个字段中的值(该值为Integer) 进行输出。
大致代码如下:
<asp:datalist id="dlProduct2" runat="server">
<ItemTemplate>
'每一条记录都在一个table里面
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
'比如这一行是需要绑定到datatable里的 ProductTitle 字段
<asp:Label id="Label2" runat="server" ForeColor="Black" Font-Bold="True">
产品名:<%#DataBinder.Eval(Container.DataItem,"ProductTitle")%>
</asp:Label>
</td>
</tr><tr>
<td>
'问题就出在这一行,在这里我需要根据字段Rank的值(可能值为1--5) 动态将一个image打印
'如果我的代码这么写:<%printStar(DataBinder.Eval(Container.DataItem,"Rank"))%>
'则编译不通过 说是Container没有声明'如果我这么写:<%#printStar(DataBinder.Eval(Container.DataItem,"Rank"))%>
'星星确实是打了 而且都正确 问题是 所有的星星 都被输出到了页面的最上方!
'请问有解决方法么???
</td>
</tr></table></ItemTemplate>
</asp:datalist>PS:改动后的printStar方法如下:
Function printStar(ByVal star As Integer)
Dim i As Integer
For i = 0 To star - 1
Response.Write("<IMG src='img/ic_star.gif' height=15 width=15>")
Next
End If
End Function
可能值范围是 1-5我想在前台页面 根据这个变量的值 来将一个 比如说 lable, 循环显示这个变量值的次数后来自己琢磨了一下 用以下的方法解决了
1.后台定义一个global的变量 Public star As Integer = 0
2.然后再定义一个针对该变量值 所执行操作的方法
Function printStar() '我这个方法是打星星用的
If star = 0 Then
Response.Write("No Ranking Record")
Else
Dim i As Integer
For i = 0 To star - 1
Response.Write("<IMG src='img/ic_star.gif' height=15 width=15>")
Next
End If
End Function3.最后前台显示处对该方法进行调用
...<td> <%printStar()%> </td>...---------------------------------------------------------------------------------------今天又遇到了类似的问题 所不同的是:前台不是说某一处需要输出,而是在一个datalist里面的循环里面,根据记录集的每一条记录中的一个字段中的值(该值为Integer) 进行输出。
大致代码如下:
<asp:datalist id="dlProduct2" runat="server">
<ItemTemplate>
'每一条记录都在一个table里面
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>
'比如这一行是需要绑定到datatable里的 ProductTitle 字段
<asp:Label id="Label2" runat="server" ForeColor="Black" Font-Bold="True">
产品名:<%#DataBinder.Eval(Container.DataItem,"ProductTitle")%>
</asp:Label>
</td>
</tr><tr>
<td>
'问题就出在这一行,在这里我需要根据字段Rank的值(可能值为1--5) 动态将一个image打印
'如果我的代码这么写:<%printStar(DataBinder.Eval(Container.DataItem,"Rank"))%>
'则编译不通过 说是Container没有声明'如果我这么写:<%#printStar(DataBinder.Eval(Container.DataItem,"Rank"))%>
'星星确实是打了 而且都正确 问题是 所有的星星 都被输出到了页面的最上方!
'请问有解决方法么???
</td>
</tr></table></ItemTemplate>
</asp:datalist>PS:改动后的printStar方法如下:
Function printStar(ByVal star As Integer)
Dim i As Integer
For i = 0 To star - 1
Response.Write("<IMG src='img/ic_star.gif' height=15 width=15>")
Next
End If
End Function
解决方案 »
- treeview
- aspnetpager url分页 痛苦啊通宵搞不定,在线等!
- 做web开发的页面有专门用户界面设计人员,而后台处理又有专门的程序人员,这个界面设计好之后与后台程序是怎样配合的呢???
- 关于asp.net导出Excel
- GridView控件问题
- 各位大侠,请帮忙,很急!
- 高手请进!!怎样配置多个webconfig??马上给分!
- .net身份验证模式
- 请大神看看我将枚举绑定到dropdownlistfor中哪里出错了
- 求助! 一个在网页里写的定时器,每隔20 秒向数据库存一次数据,数据从前台获得!!
- ajaxpro的一个问题,关于连续两次用js调用后台函数失败。请高手解答
- 如何让程序定时执行某操作。
<ItemTemplate>
<IMG src='img/ic_star.gif' height=15 width=15>
</ItemTemplate>
</asp:repeater>
但是不会设置repeater的datasource我刚才试了下 你的方法error如下:
c:\inetpub\wwwroot\EMOBILE\Default.aspx(183) : error BC30311: Value of type 'Integer' cannot be converted to '1-dimensional array of Char'. dataBindingExpressionBuilderTarget.DataSource = CType( new String(CInt(DataBinder.Eval(Container.DataItem,"Rank")))-1){} ,Object)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
c:\inetpub\wwwroot\EMOBILE\Default.aspx(183) : error BC30944: Syntax error in cast operator; two arguments separated by comma are required. dataBindingExpressionBuilderTarget.DataSource = CType( new String(CInt(DataBinder.Eval(Container.DataItem,"Rank")))-1){} ,Object)
repeater的datasource不是应该指向一个数据集么?
它里面的ItemTemplate会被循环 该数据集中rows的次数而你上面指向的
<%# new String(CInt(DataBinder.Eval(Container.DataItem,"Rank")))-1){} %>是想要让他指向一个String 数组么?
DataBinder.Eval(Container.DataItem,"Rank")是你的值,转换成数字CInt(DataBinder.Eval(Container.DataItem,"Rank"))再生成一个空的数组,起数据源作用(说白了,就是一个循环).DataSource = new integer(CInt(DataBinder.Eval(Container.DataItem,"Rank"))-1){}
datasource='<%# new String( CType( DataBinder.Eval(Container.DataItem,"Rank"),Integer ) -1){} %>'
对于vb语言 还是不熟悉 数组这是第一次用。汗!不过还是很谢谢你的!!!!!!!!!!!!!
找了半天 没看到在哪里?