.net vb自定义控件求救

xutongfu 2010-05-01 03:49:19
重写Render如下:
Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
CreateChildControls()
MyBase.Render(writer)
writer.Write("<script type=""text/javascript"">" _
& "function PreView(FileName){" _
& "var ext=FileName.substring(FileName.lastIndexOf("".""),FileName.length);" _
& "ext=ext.toLowerCase();" _
& "if((ext!='.jpg')&&(ext!='.gif')&&(ext!='.jpeg')&&(ext!='.png')&&(ext!='.bmp')){" _
& "alert(""你选择的不是有效的图片文件!"");}else{" _
& "document.getElementById(""PreView"").innerHTML=""<img src='""+FileName+""' style='width:100px;height:100px; border:0px;' alt=''/>"";}" _
& "}" _
& "</script>")
End Sub

重写CreateChildControls如下:
Private Sub BuildControl()
Dim HIF As New HtmlInputFile
Dim HIB As New HtmlInputButton
HIF.ID = UniqueID & "_UpFile"
HIF.Name = UniqueID & "_UpFile"
HIF.Style.Add(HtmlTextWriterStyle.Display, "none")
HIF.Attributes.Add("onchange", "PreView(this.value)")
HIB.ID = UniqueID & "_Btn"
HIB.Name = UniqueID & "_Btn"
HIB.Value = "上传图片"
HIB.Attributes.Add("OnClick", HIF.ID & ".click()")
Controls.Add(New LiteralControl("<div style=""height:120px; border:1px solid red; float:left; display:block; margin:0 5px 0 0;"">" _
& vbCrLf & "<ul style=""float:left; padding:0px; margin:0px; list-style-type:none; width:100px;"">" _
& vbCrLf & "<li id=""PreView"" style=""height:100px;""></li>" _
& vbCrLf & "<li style=""height:20px; text-align:center;"">"))
Controls.Add(HIF)
Controls.Add(HIB)
Controls.Add(New LiteralControl(vbCrLf & "</li>" _
& vbCrLf & "</ul></div>"))
End Sub

Protected Overrides Sub CreateChildControls()
Controls.Clear()
ClearChildViewState()
BuildControl()
End Sub
重写init如下:
Protected Overrides Sub OnInit(ByVal e As System.EventArgs)
MyBase.OnInit(e)
save()
End Sub

这里想要实现的是一个图片上传控件,当我点击“上传图片”按钮时调用<input type=file>的点击事件,并打开浏览图片窗口选择图片。

现在问题就出来了,为何我在页面上引用这个控件,选择好图片后,页面上的Button点击第一次好像是没有反应,点击第二次页面就回传了,然后,我之前选择好的图片也就不见掉了。那这是啥问题?问题出在了哪?

请各路英雄好汉帮帮忙才是啊!
...全文
105 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xutongfu 2010-05-01
  • 打赏
  • 举报
回复
Public Sub save()
If Page.IsPostBack Then
Dim Hif As HtmlInputFile = DirectCast(Me.FindControl(UniqueID + "_UpFile"), HtmlInputFile)
HttpContext.Current.Response.Write("路过这里")
End If
End Sub

可能是红色部分有问题,去了红色部分就没问题了!
xutongfu 2010-05-01
  • 打赏
  • 举报
回复
会不会是我的自定义控件哪没搞对?
xutongfu 2010-05-01
  • 打赏
  • 举报
回复
试过了,还是不行哦!
皇城龙三 2010-05-01
  • 打赏
  • 举报
回复
Button的后台代码,最后面加个refresh
xutongfu 2010-05-01
  • 打赏
  • 举报
回复
哪个按钮,引用控件页面上的按钮吗?
皇城龙三 2010-05-01
  • 打赏
  • 举报
回复
在按钮的代码后面加个刷新试一下呢

8,833

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧