以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  网页中的超长文本处理  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=161015)

--  作者:ycs5801
--  发布时间:2021/3/2 13:50:00
--  网页中的超长文本处理
用户通过多行文本框输入了200多个字符,手机通过表格浏览时候造成高度太高,每一行内容都需要上下拉动才能看全,设置了列宽也没什么作用,请问这种有什么好的解决方案吗?能不能点一下自动打开一个大文本框进行阅读?
--  作者:有点蓝
--  发布时间:2021/3/2 14:00:00
--  
手工添加行的方式:http://www.foxtable.com/mobilehelp/topics/0068.htm,给行绑定点击事件:

判断如果单元格内容多的,只显示前一部分字符,然后点击单元格的时候,在事件函数里写代码,跳转到一个详情页面

dim s as string = “这里有很多内容......”
            With .body.AddRow()
                .AddCell(IIF(s.length > 10, s.substring(0,10) & "...",s)
).Attribute= "onclick= \'某某js函数()\'" 
                .AddCell("中国上海")
            End With

--  作者:ycs5801
--  发布时间:2021/3/2 15:59:00
--  没看明白
 wb.AddForm("","form1","addnew.htm")
    With wb.AddInputGroup("form1","ipg1","船舶资料")
       
        .AddSelect("检查类别","检查类别","进检|出检")
        .AddInput("泊位","泊位","Text")
        \'\' .AddInput("靠离日期","靠离日期","datetime-local")
        .AddInput("靠离日期","靠离日期","datetime-local").value = Format(Date.now,"yyyy-MM-ddTHH:mm")
    End With
    With wb.AddInputGroup("form1","ipg2","船舶信息")
        .AddTextArea("船舶信息",5).Placeholder = "请输入200字以内的船舶基本信息"
    End With

老师,这是我的代码,主要是船舶信息这个地方字符太多了,您的方法我还是没有思路,能不能再指点一下?

--  作者:有点蓝
--  发布时间:2021/3/2 16:02:00
--  
在通过表格浏览时候处理,生成表格的时候处理,和这段代码有啥关系?
--  作者:ycs5801
--  发布时间:2021/3/2 16:07:00
--  对对
我搞错了。这是list代码。

\'根据此页数据生成网页
With wb.AddTable("","Table1")
    .ColWidth = "12px,,,,,,,,1000px," \'设置列宽
    .PageNumber = page \'设置页码
    .Primarykey = "_Identify" \'设置主键
    .ActiveSheet = "menu" \'设置菜单
    .CreateFromDataTable(dt)
End With
With wb.AddButtonGroup("","btg2", False) \'生成上一页和下一页按钮
    If page > 0 Then
        .Add("btnPrev", "上一页","","List.htm?page=" & page - 1)
    End If
    If Endrow < count Then
        .Add("btnNext", "下一页","","List.htm?page=" & page + 1)
    End If
End With
wb.AppendHTML("<script src=\'./lib/table.js\'></script>") \'引入脚本文件
e.WriteString(wb.Build)

--  作者:有点蓝
--  发布时间:2021/3/2 16:16:00
--  
改为手工添加行的方式:http://www.foxtable.com/mobilehelp/topics/0072.htm

\'根据此页数据生成网页
With wb.AddTable("","Table1")
    .ColWidth = "12px,,,,,,,,1000px," \'设置列宽
    .PageNumber = page \'设置页码
    .Primarykey = "_Identify" \'设置主键
    .ActiveSheet = "menu" \'设置菜单

            Dim nms() As String = {"","产品","客户","数量","单价","日期"}

            .Head.AddRow(nms)

            Dim cnt As Integer

            For Each r As DataRow In dt.datarows

                With .Body.AddRow(cnt, r("产品"), r("客户"), r("数量")).Attribute= "onclick= \'alert(""" & r("船舶信息") & """)\'" 

dim s as string = r("船舶信息")

                    .AddCell(IIF(s.length > 10, s.substring(0,10) & "...",s))

                End With

            Next

End With

--  作者:ycs5801
--  发布时间:2021/3/2 22:37:00
--  报错了
用你这个报错了:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:自定义函数,list
详细错误信息:
调用的目标发生了异常。
索引和长度必须引用该字符串内的位置。
参数名: length

另外哪个cnt有什么用处?

--  作者:有点蓝
--  发布时间:2021/3/2 22:55:00
--  
没啥用处,我只是复制帮助代码说明处理逻辑而已,细节处自己思考处理

.AddCell(IIF(s.length > 10, s.substring(0,10) & "...",s))

改为

if s.length > 10 then
.AddCell(s.substring(0,10) & "...")
else
.AddCell(s)
endif

--  作者:ycs5801
--  发布时间:2021/3/2 23:11:00
--  还是出错
未找到类型“Boolean”的公共成员“AddCell”
--  作者:有点蓝
--  发布时间:2021/3/2 23:18:00
--  
贴出完整代码说明问题