高手请进,看这样的问题,怎么解决??在线……

smx717616 2004-05-03 01:20:00
1.我的窗体中有 label1--label67 个label 控件
我现在需要从数据库中取得相应的值 赋给label
我的想法是
while dr.read()

labeli.text=dr.item(i-1) '这里怎么写,我不能写67个语句吧!

end while

2.findcontrol 怎么用
如 e.item.findcontrol("text1",Textbox)
如果,我自己写的函数没有 e 参数,那该怎么定义呢??

请用 vb.net的代码,c#不给分。
...全文
29 34 点赞 打赏 收藏 举报
写回复
34 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
smx717616 2004-05-03
我原来用的是

While dr.Read
Dim m, n As Integer
Dim sid As Integer
For m = 0 To Me.Controls.Count - 1
For n = 0 To Me.Controls(m).Controls.Count - 1
If Me.Controls(m).Controls(n).GetType.ToString = "System.Web.UI.WebControls.Label" Then
Dim txt As Label = Me.Controls(m).Controls(n)
sid = Val(txt.ID.Substring(4)) - 1
If sid < 67 And sid >= 0 Then
txt.Text = dr.Item(sid)
End If
End If
Next
Next
End While

  • 打赏
  • 举报
回复
smx717616 2004-05-03
第一个问题基本解决了
多谢 bitsbird(一瓢.net) 大哥的例子,比我以前的方法好了不少
While dr.Read

Dim ctl As Control
Dim l As Label
Dim sID As String
Dim d As Integer
For Each ctl In Page.Controls(1).Controls
If ctl.GetType.ToString = "System.Web.UI.WebControls.Label" Then
l = CType(ctl, Label)
sID = l.ID
d = Val(sID.Substring(4)) - 1
If d < 67 And d >= 0 Then
l.Text = dr.GetValue(d).ToString()
End If
End If
Next
End While

也非常感谢, cuike519(studing sps(修练中...)大哥,希望能从
你们那多学点东西。
两位能不能留个联系方式什么的?以便小弟经常联系

还有 shenen(真的愛你)兄弟的热心支持,帮了我一下午。
  • 打赏
  • 举报
回复
cuike519 2004-05-03
private void yourfuntcion(System.Web.UI.WebControls.DataGridCommandEventArgs e){
DataGridItem item = e.Item;
// other code
}

前面说过了!e只是一个变量名他的类型决定了它的特性下面的代码就不能使用e.Item
private void yourfunction(string e){
e.Item// error!!!
}

定义它和定义其他的变量没有什么不同。
  • 打赏
  • 举报
回复
smx717616 2004-05-03
谢谢楼上的,不过我就想问 e 在自定义函数时是怎么定义的
  • 打赏
  • 举报
回复
cuike519 2004-05-03
2、VB.NET中的FindControl使用方法如下(来自MSDN):
Private Sub Button1_Click(sender As Object, MyEventArgs As EventArgs)
' Find control on page.
Dim myControl1 As Control = FindControl("TextBox2")
If (Not myControl1 Is Nothing)
' Get control's parent.
Dim myControl2 As Control = myControl1.Parent
Response.Write("Parent of the text box is : " & myControl2.ID)
Else
Response.Write("Control not found.....")
End If
End Sub
上面的方法是在页面里面找TextBox2,如果实在其他的地方那么你要指定他的父控件,比如:Dim myControl1 As Control = e.Item.Cells[0].FindControl("TextBox2")。
  • 打赏
  • 举报
回复
smx717616 2004-05-03
bitsbird(一瓢.net) 非常感谢你,
你说的方法我用过,可是我感觉挺麻烦,我感觉
只用 findcontrol就能实现。
  • 打赏
  • 举报
回复
smx717616 2004-05-03

to cmlcj(超级烂人)
label[i]="value" 好象没有吧,要不你试试
  • 打赏
  • 举报
回复
cmlcj 2004-05-03
有两种方法:
1、你把所有的Lable都用相同的名字,这样67个label就是一个控件数组。
label[i]="value"
2、结合javascript中的eval方法
你把从dataset中的数据循环到一个数组中间去,然后在把数值一个一个的附给javascript中的数组,最后这样就可以了
<script>
for(i=0;i<67;i++){
eval("label"+i+".text='数组的值'")
}
</script>
  • 打赏
  • 举报
回复
bitsbird 2004-05-03
Dim ctl As Control
Dim l As Label
Dim sID As String
For Each ctl In Page.Controls[1].Controls
If (ctl Is Label)
l=Ctype(ctl,Label)
sID = l.ID;
sID = sID.Substring(5);
l.Text = dataReader.GetValue([Convert.ToInt32(sID)-1]).ToString();
End If
Next

我试着改的
  • 打赏
  • 举报
回复
smx717616 2004-05-03
我想用 findcontrol 方法能实现我的功能的
  • 打赏
  • 举报
回复
smx717616 2004-05-03

to shenen(真的愛你)
我的label在 <table> <table>中,你的方法找不到
  • 打赏
  • 举报
回复
shenen 2004-05-03
你写的第2条,我不太清楚你的意图,有空可以在组里面讨论一下
  • 打赏
  • 举报
回复
bitsbird 2004-05-03
Controls[i]表示第几个控件,Controls是表示所有控件
  • 打赏
  • 举报
回复
shenen 2004-05-03
Dim intI As Integer
For intI = 1 To 3
CType(Page.FindControl("TextBox" & intI), TextBox).Text = "你好" & intI
Next
  • 打赏
  • 举报
回复
smx717616 2004-05-03
谁能解释一下 me.control(i).findcontrol 中的 i 都表什么呢?
谁能解决问题呀,我只能给200分了。
  • 打赏
  • 举报
回复
bitsbird 2004-05-03
就是遍历页面上的控件,如果是label控件的话,把label控件的id取出来,把前面5个字母label去掉,留下序号,比如label67,留下67,再用DataReader中读第66列的值,赋值给label.Text

说成这样你用vb.net也可以做了,重要的是思路,并不是语言
  • 打赏
  • 举报
回复
smx717616 2004-05-03
1.哦,c#的代码我看不太懂
2.this 好象不能用
  • 打赏
  • 举报
回复
bitsbird 2004-05-03
<asp:Panel id=Panel1 runat=server>



this.Panel1.FindControl("Button1")
  • 打赏
  • 举报
回复
bitsbird 2004-05-03
我没有看清还以为是6,7个
foreach (Control ctl in this.Controls)
{
if (ctl is Label)
{
Label l = ctl as Label;
string sID = l.ID;
sID = sID.Substring(5);
l.Text = dataReader.GetValue([Convert.ToInt32(sID)-1]).ToString();
}
}
2.比如说页面上有个table,table里有个button ,this.Table.FindControl("Button1")
  • 打赏
  • 举报
回复
smx717616 2004-05-03
csdn怎么了呀???
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
.NET社区
加入

5.9w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-05-03 01:20
社区公告
暂无公告