注册 登录
编程论坛 ASP.NET技术论坛

关于刷新的问题

broon0635 发布于 2007-05-30 11:11, 495 次点击

我在vb2005里面画曲线图。因为有限制条件,在dropdownlist里面换条件。点击BUTTON后第一次会出现曲线图,可是换了条件再点BUTTON时,曲线图没有变化,点刷新后会出现 重试 和 取消

这个问题怎么解决啊

8 回复
#2
xiaofeng25662007-05-30 11:15
有个画图的工具dotnetcharting,就是个控件,功能强大,你试试http://www.dotnetcharting.com上下载
#3
GrimFish2007-05-30 11:18
你刷新,自然服务器的FROM会再次提交服务器,进行回送,当然处于安全考虑,IE加入了提示功能。

你说曲线图没有变化
把page_load 部分的代码加上
if (!IsPostBack)
{
//代码放这里
}

进行服务器回送,应该能解决问题。
#4
broon06352007-05-30 14:08
我是在
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

end sub
里面写的曲线代码,加上 If Not Page.IsPostBack ,运行时直接显示不出来曲线图。
#5
GrimFish2007-05-30 14:37
还是把代码发出来吧。我发现这里的人都喜欢复制那么一点点出来,好象把代码发出来就是发商业秘密一样。
#6
broon06352007-05-30 15:33

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim mycnn As New SqlConnection
Dim objds1 As New DataSet
Dim MyCommand As New SqlDataAdapter

mycnn.ConnectionString = "Data Source=locahost;User ID=sa;Password=sa;Initial Catalog=current;integrated security=false"
mycnn.Open()
MyCommand = New SqlDataAdapter("select distinct DateTime,Value from table where code='" + jiancezhandian.Text + "'and DateTime>='" + starttime.Text + "'and DateTime<='" + totime.Text + "'and CommonName='" + jianceneirong.Text + "'", mycnn)
objds1 = New DataSet()
MyCommand.Fill(objds1, "table")

Dim MonNum() As String = New String(objds1.Tables(0).Rows.Count) {}
Dim MonCount() As String = New String(objds1.Tables(0).Rows.Count) {}
Dim i As Integer
For i = 0 To objds1.Tables(0).Rows.Count - 1
MonNum(i) = objds1.Tables(0).Rows(i)(0).ToString()
MonCount(i) = Round(objds1.Tables(0).Rows(i)(1).ToString(), 2)
Next


Dim strXdata As String = String.Empty
Dim strData As String
For Each strData In MonNum
strXdata += strData + ControlChars.Tab
Next
Dim strYdata As String = String.Empty '为y轴指定特定的字符串,以便与x轴相对应
Dim strValue As String
For Each strValue In MonCount
strYdata += strValue + ControlChars.Tab
Next


Dim objCSpace As Microsoft.Office.Interop.Owc11.ChartSpace = New Microsoft.Office.Interop.Owc11.ChartSpaceClass()
Dim objChart As Microsoft.Office.Interop.Owc11.ChChart = objCSpace.Charts.Add(0)
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeLine

Dim strSeriesName As String = "图例 1"

objChart.HasLegend = True
objChart.HasTitle = True
objChart.Title.Caption = "分析图"
objChart.Axes(0).HasTitle = True
objChart.Axes(0).Title.Caption = "" '月份
objChart.Axes(1).HasTitle = True
objChart.Axes(1).Title.Caption = "数量"


objChart.SeriesCollection.Add(0)
objChart.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimSeriesNames, ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName)
objChart.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimCategories, ChartSpecialDataSourcesEnum.chDataLiteral, strXdata)

objChart.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimValues, ChartSpecialDataSourcesEnum.chDataLiteral, strYdata)
Dim dl As Microsoft.Office.Interop.Owc11.ChDataLabels = objChart.SeriesCollection(0).DataLabelsCollection.Add()

Dim strAbsolutePath As String = (Server.MapPath(".")) + "\\test.gif"
objCSpace.ExportPicture(strAbsolutePath, "GIF", 600, 350)

Dim strRelativePath As String = "./test.gif"

Dim strImageTag As String = "<IMG SRC='" + strRelativePath + "'/>"

PlaceHolder1.Controls.Add(New LiteralControl(strImageTag))

' objCSpace.Refresh()
' mycnn.Close()
'Request.Url.ToString()
End Sub
点击BUTTON后第一次会出现曲线图,可是换了条件再点BUTTON时,曲线图没有变化,点刷新后会出现 重试和取消 ,不过点了重试 后曲线图才会变化。我想问一下,直接点击BUTTON,曲线图发生变化的代码。谢谢了。

#7
GrimFish2007-05-30 15:42
。。。。。。。。。。。。VB看着头就大。。。太乱了,我VB没学。
#8
川流不息2007-05-30 15:46
我想還是你的代碼沒有放在IsPostBack中的原故,不過,這個代碼是你綁定的下拉框的值。也就是說,你給下拉框賦值的地方應該放在IsPostBack中去,不然,你每次提交刷新時,就會重新綁定一次,當前選定的項就重新變成了第一個,所以呢。。。
#9
broon06352007-05-31 10:52
我就是把下拉框賦值的代码放在了IsPostBack中。
我的目的是再点击BUTTON后,曲线图和下拉框的值相对应起来,而不是必须点击刷新后曲线图才发生变化。这个代码想了很长时间了,可就是解决不了。谁可以帮忙啊。谢谢了
1