English versionEnglish
杨涛的个人主页

留言簿

搜索留言
关键字: 
签写留言
姓名:*
主页:
留言内容(2000字以内):*

验证码:
注意:留言内容不支持UBB及HTML标签
为防止发布垃圾或有害留言,所有发布的留言需站长批准后才会显示。

首页  上一页  ...  312  313  314  315  316  317  318  319  320  321  ...  下一页  尾页
2006/4/24 19:25:00  网中飞人
Private Sub butQuote_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butQuote.Click
        Dim Count As Integer = 0
        Dim ThisItem As DataGridItem

        Dim dt As DataTable = New DataTable
        Dim dr As DataRow
        dt.Columns.Add(New DataColumn("Cells1", GetType(String)))
        dt.Columns.Add(New DataColumn("Cells2", GetType(String)))
        dt.Columns.Add(New DataColumn("Cells3", GetType(String)))
        dt.Columns.Add(New DataColumn("Cells4", GetType(String)))
        dt.Columns.Add(New DataColumn("Cells5", GetType(String)))

        For Each ThisItem In dgStock.Items
            Dim Selection As CheckBox = CType(ThisItem.FindControl("ChkStock"), CheckBox)
            If Not Selection Is Nothing Then
                If Selection.Checked Then
                    dr = dt.NewRow()
                    dr(0) = CType(dgStock.Items(ThisItem.ItemIndex).Cells(0).Controls(0), HyperLink).Text
                    dr(1) = ThisItem.Cells(1).Text & ""
                    dr(2) = ThisItem.Cells(2).Text & ""
                    dr(3) = ThisItem.Cells(3).Text & ""
                    dr(4) = ThisItem.Cells(4).Text & ""
                    dt.Rows.Add(dr)

                    Count = Count + 1
                End If
            End If
        Next
        If Count = 0 Then
            RegisterStartupScript("alert", "<script language=javascript>window.alert('最少要选择一项');</script>")
            Exit Sub
        End If
        Session("quote") = dt
        Response.Redirect("order.aspx")
    End Sub

上面代码在使用PostBack分页方式时就可以正常的发出订单,但如果改成Url分页方式时,不管有没选择过,Count总是为0,提示“最少要选择一项”,请问一下应该怎样修改呢?
回复:您好,Url分页时每次分页都相当于重新打开一个新页面,您使用的复选框的值是需要回发才能获取的,所以要获取这些复选框的值,您只能使用PostBack方式分页。谢谢!
2006/4/21 10:59:00  王路
您好:
   我在用您的分页控件的时候,比如我绑定了一个dataguid,每条记录有各自的超连接,点击后查看详细信息,我要从详细信息返回到列表时,我想定位到列表的那一页,但是不知道怎么去定位,在AspNetPager1_PageChanged 事件中能设置AspNetPager1.CurrentPageIndex 的值,但是在其他地方怎么不能设置啊!要是这样的话,我就不能定位到我刚才是从那一页查看记录的详细信息的!就是说我不管是从那一页看的详细信息,在查看完信息的时候回去永远是第一页!敬请解答!谢谢!
回复:您可以用客户端脚本history.back()来返回前一页,用postback方式分页时,您是无法在不回发的情况下直接跳转到某一页的,要实现这样的功能,您需要用url方式分页。谢谢!
2006/4/20 22:43:00  无名氏
该控件page索引是通过地址栏传递的,我现在同样通过地址栏传递中文数据,2个字或2个字以上是可以的,1个中文字就不行,点击第二页或下一页时拿到的值是错误的,

打个比方用户通过输入1个中文字,然后点击搜索,我是传到本页做处理的,条件都搜索出来后。我再点击第2页出错,用户如输入2个或2个以上中文字就没关系,急啊,请速回,麻烦了
回复:您好,在Url中传递中文时请用Server.UrlEncode方法编码一下后再传递,否则很容易出现乱码问题。谢谢!
2006/4/19 10:36:00  南文焕
您好,问题我已经解决了。
整个过程是这样的:我自己通过您写的那个代码工具注册了变量。然后将这个变量填写到那个查询条件里面去了。本以后程序会自动识别的。但是却没有,它把这个当成字符串了。我后来才发现问题在这,将存储过程里面的那个变量是用+和@where连接就没有问题。
谢谢您的回复,建议您的代码工具程序判断一下这个。如果是变量的话,系统不要把他作为字符串对待了。
回复:您好,存储过程中是不能将整个where子句用变量替换的,如果一定要这样做,您必须用exec方法来执行这个动态sql语句。谢谢!
2006/4/18 22:14:00  lxh
下面是我绑定DATAGRID的代码,请帮我看一下,为什么Name取到的总是第一页的值,而不是当前页中的第一列的值,是不是
'取得当前页DataGrid中第一列中所有的值
        Dim ThisItem As DataGridItem
        For Each ThisItem In dgStock.Items
            Name += ThisItem.Cells(0).Text & ","
        Next
这一段写错地方了呢?
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not IsPostBack Then
            FirstBind()
        End If
    End Sub

    Sub FirstBind()
        comStock = New SqlCommand("sp_List1", Conn)
        comStock.CommandType = CommandType.StoredProcedure
        comStock.CommandTimeout = 120
        comStock.Parameters.Add("@pageindex", 1)
        comStock.Parameters.Add("@pagesize", 1)
        comStock.Parameters.Add("@docount", True)
        Conn.Open()
        Pager.RecordCount = CInt(comStock.ExecuteScalar())
        Conn.Close()
        BindData()
'取得当前页DataGrid中第一列中所有的值
        Dim ThisItem As DataGridItem
        For Each ThisItem In dgStock.Items
            Name += ThisItem.Cells(0).Text & ","
        Next
    End Sub

    Sub BindData()
        comStock = New SqlCommand("sp_List1", Conn)
        comStock.CommandType = CommandType.StoredProcedure
        comStock.CommandTimeout = 120
        comStock.Parameters.Add("@pageindex", Pager.CurrentPageIndex)
        comStock.Parameters.Add("@pagesize", Pager.PageSize)
        comStock.Parameters.Add("@docount", False)
        Conn.Open()
        dgStock.DataSource = comStock.ExecuteReader()
        dgStock.DataBind()
        Conn.Close()
    End Sub
回复:您这一段代码写在什么地方?我觉得您应该在DataGrid的ItemDataBound事件处理程序中去取。谢谢!
2006/4/17 17:41:00  狂情冰峰
版主您好,想请问一下,你的AspNetPager分页控件提供了三种存储过程(sql2000):Table变量,临时表,多重Select语句,请问一下对于海量数据来说,这三种方式哪一种效率更高?
还有,为什么我选择‘多重Select语句’时运行会提示‘TOP 子句中的行数必须是整数’,而其它两种方式都正常?
还有一个问题,我如何设置只取数据库的前100条记录,我试着将存储过程中的Select名主中加入‘top 100’,但好像没有什么效果,主要是下面的导航依然没变?

谢谢!
回复:您好,我只测试过十万到五十万条记录级别的三种存储过程分页的效率,一般来说用表变量速度最快,但因为表变量是在内存中保存相关数据的,所以要占用大量内存,临时表则是在数据库中创建物理表,速度稍慢,而多重Select语句要进行多次选择及排序,数据量太大速度会明显变慢,不过有的朋友却认为它的速度更快,我也没进行过更多测试,您可能需要自己再测试一下比比效率。至于第二个问题,您用top关键字选择记录时,排序的字段值是否有重复的?注意所有重复的值会被当做一条记录,所以top 100选出来的并非一定是100条。谢谢!
2006/4/16 10:29:00  小翁
怎么把数据绑定到控制上了。
回复:对不起,我不太理解您的意思!分页控件不需要绑定数据,您只需要设置它的RecordCount即分页的记录总数,另外编写PageChanged事件处理程序即可。谢谢!
2006/4/14 22:52:00  文豪
吴老师,我在使用的时候遇到一些问题,但你这里又不可以发图,我已经发到你的邮件上了,有空帮我看看好吗?
回复:已经回复,请注意查收。谢谢!
2006/4/14 10:11:00  小友
吴老师,你好!!我要实现的你的这个留言查询的效果,可否将存储过程和调用的原代码发给我一份,我刚学.net,希望能多学习学习。谢谢!
回复:对不起,源代码早弄丢了,所以这个留言簿已经三年多没更新了:)等有时间我会重做一个。谢谢!
2006/4/14 9:43:00  阿雄
另外,这个控件页面调用时,如下太烦躁,很多页面都用这一段,
<Webdiyer:AspNetPager runat="server" id="pager" OnPageChanged="ChangePage" HorizontalAlign="right" PagingButtonSpacing="0" Height=30 PageSize=4  SubmitButtonStyle="border:1px solid #000066;height:20px;width:30px" InputBoxStyle="border:1px #0000FF solid;text-align:center" SubmitButtonText="转到" NumericButtonTextFormatString="[{0}]" ShowCustomInfoSection="left" Width=760 CssClass="mypager" TextBeforeInputBox="转到第" TextAfterInputBox="页"/>

有很多页面只是上页的width属性,pagesize属性不同,其它都是相同的,有没有更简便的调用方法
回复:这没有好的办法解决,除非您自己修改源代码,将其中属性的默认值改为您常用的值然后重新编译并在项目使用您自己编译的dll文件。谢谢!
首页  上一页  ...  312  313  314  315  316  317  318  319  320  321  ...  下一页  尾页