posts - 69, comments - 301, trackbacks - 21, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

我的评论

共2页: 1 2 下一页 
@mzc
提供我的作法供你参考,我的BasePage会有一个FuncTag属性(功能代码),在取用户在该页面的权限时,会将FuncTag传给中间层以取得用户在该功能的权限。
re: SqlDataSource 執行資料篩選 jeff377 2008-08-31 09:51  
@陈晨
我当然了解由商业逻辑层去处理筛选是最好的,只是本文的重点是在SqlDataSoruce,是给使用SqlDataSoruce的使用者参考。我在撰写ASP.NET程序是完全不去使用SqlDataSource的,而是使用自行改写过的通用的ObjectDataSource来连结商业逻辑对象。
@mzc
首先有个数据表去存放「用户/功能的权限设定」数据,包含「用户编号、功能代码、权限值」三个字段,
可以透过特定组件去数据库抓取这个目前登入用户在该页面(功能)的权限值。
re: 字符串中寻找关键词片段 jeff377 2008-08-27 21:39  
@lexus
以「包含”连胡会”这个关键词片段,并包含关键词前后文各10个字符」这个案例来说,它的正则式为 “.{0,10}连胡会.{0,10}”
@liaoost
你有二种作法
1.勾选单一CheckBox后马上PostBack,则采用本文的作法。
2.勾选多个CheckBox后,按钮PostBack,取得所有勾选的数据列。这方法你可以 GridView.Rows 逐列去 FindControl 找到该列的 CheckBox,再判断是否被勾选。

附注:以上作法GridView皆需启用ViewState。
@liaoost
它的错误讯息是因为你的数据来源未包含 Discontinued 这个字段所导致。你要系结实际数据来源中确定存在的字段。
@liaoost
這要看你是要在那個 Template 中使用 CheckBox,在 ItemTemplate 及 EditItemTemplate 都可以運作。
這個案例是會同步更新的,因為它的 GridView 及 DetailView 是繫結同一個 DataSource。
@落木
那是參考 ASP.NET AJAX 的組件,所以在 TBScriptManager 類別中才可以使用 ScriptManager
@蜀山雪狼
Sorry. 没有注意到简繁混杂了。
@Oran
如果把噪声变淡了或跟文字颜色容易区分,那很容易用影像处理中的二值化,一下就切割出文字,再复杂的噪声也无用武之处。
以下网址的图形验证码,它的规则就如同我所说的,是强度相当不错的图形验证码。

http://www.cnblogs.com/davy79/archive/2008/06/22/1227805.html
噪声是非常重要的一点,好的噪声会让程序无法正确分割文字,教你一个最简单且很难分割的噪声,就是在图形上画一条不规则的横向曲线横跨文字,而且曲线颜色跟文字一样。噪声曲线跟文字一样颜色(黑色)的目的是要让二值化无法将文字撷取出来。
@茄哩啡.NET
我在台湾工作,偶尔才会到大陆去出差
@王孟军!
是的,我是台湾人。
@鼠标王
你似乎贴错网址了
@沙发
你應該去看一下微軟網站上的範例,才會知道什麼叫麻煩了 ^^

http://thesource.ofallevil.com/taiwan/msdn/columns/huang_jhong_cheng/ASP_NET_GridView.htm
@T2噬菌体
我也没用这种方式在呈现Master-Detail的数据,会写这个范例只是单纯是因为看到一篇论譠讨论,以探究的角度来撰写此范例。

http://forums.microsoft.com/MSDN-CHT/ShowPost.aspx?PostID=2653195&SiteID=14
@丹空竹
我研究所的论文就是在做类神经网络处理文字辨识,以你的例子而言,旋转随意角度对辨识来说并不会有太大影响,只要抓字的重心,360度旋转抓取特微值,还是可以辨识的出来。
通常文字辨识的有一个重要的动作,就是要把个别文字分割,你只要把文字弄的难分割就有不错的安全性。
@daydayupayup
纯图形的好处是不容易使用机器识别,那是属于影像处理的一问学问,不过颜色多不见得不好识别,有时反而是人眼不好识别而机器易识别,因为颜色多的图形验证码,有时只要有二值化就很容易撷取出文字部分,最好的图形验证码是人眼易识别而机器难识别。
像Yahoo登入的纯黑白验证码就写的非常好(噪声简单,人眼又易识别),可是要用机器识别难度就非常高,为研究我曾使用类神经网络(人工神经网络)尝试去识别它的图形,成功率相当低。
这个跟 ViewState 加密无关,你从 IE 检视 HTML 码,就有辨法找到那个图形验证码的值,这样只要用程序去控制操作 IE 就能破解了。
你的验证控件是使用底图上加文字,这样安全性是不高的,机器人程序很容易就破解了,建议比较好的方式是含文字整个都是图形,这样用程序比较难破解。
当然也有人使用影像识别的技术可以自动辨识,不过这个难度比识别码内含在 HTML 码中难多了。
re: Asp.net—递归方式的FindControl jeff377 2008-06-18 20:05  
这篇好像是我的文章 @@
转贴请注明一下来源喔,谢谢。

原文:http://www.cnblogs.com/jeff377/archive/2008/05/13/1194314.html
re: GridView 数据异动前的字段检查 jeff377 2008-06-13 21:53  
@恋恋风尘
除了可以在Client端使用JavaScript处理的简单验证外,我还是认为应该尽量往底层处理数据验证的动作。
例如你在GridView做验证,当程序代码中有使用到SqlDataSource.Update在异动数据,那不就还要再重复写一次了吗?
若是系统是属性三层式架构,例如以ObjectDataSource连结中间层商业逻辑组件,那数据验证的动作就要往中间层商业逻辑组件中处理;因为以后若有其它的前端(如 WinForm、WebService)要连接这个商业逻辑组件,就无需再写一次数据验证动作了。
re: GridView 数据异动前的字段检查 jeff377 2008-06-13 17:47  
@kiler
我知道....文章中有说明了,这只是为了测试中间层验证的动作而已,不是真的要在中间层做空字符串的验证。
re: SqlDataSource 執行資料篩選 jeff377 2008-06-12 23:25  
@wuya2
设定 FilterExpression 属性的做法,它是针对 DataView 下 Filter,所以会先取回所有数据再针对 DataView 下 Filter;若数据非常多时(例如十万笔数据),而筛选符合的数据只有几笔,效能上会比较不好。
re: SqlDataSource 執行資料篩選 jeff377 2008-06-12 23:22  
@陈晨
你要先了解ASP.NET 事件的顺序,Page Load 事件会比按钮的 Click 事件先发生,你的作法会发生先判断 ViewState设定 SelectCommand,后面才去设定 ViewState,会跟预期的执行顺序相反。
2楼的方法当然也可行,不过它只有限制筛选字段是固定的状况下才可以使用。
@要有好的心情
针对批量更新的问题,如同你说的一样,我设计的TBObjectDataSoruce 控件的 UpdateMethod、InsertMethod、DeleteMethod
就是直接存取 TBBusinessObject 控件,并不是直接呼叫中间层去异动数据库。
@麦舒
新增、删除、修改可以在一个页面中处理,为了配合 Membership以及Role,而将其分成三个页面,这样不是更难维护了吗?
若认为 ViewState 不安全,可以将其储存在 Catch或其它地方中就可以解决此问题,而且这段程序代码在 BasePage 中,可以随意依情形修正储存目的。
我的作法是使用 BasePage 做权限控管,供参考

http://www.cnblogs.com/jeff377/archive/2008/06/10/1217035.html
@麦舒
问题就是Asp.net提供的Membership以及Role无法做到细部的操作权限控管,即同一个页面具有「浏览、新增、删除、修改...等」操作权限。
麻烦也给我一份程序代码,谢谢。

email:jeff377@hotmail.com
msn:jeff377@hotmail.com
blogsAdd: http://www.cnblogs.com/jeff377/
老家:台湾
@小寒
基本上功能权限的控管的对象是窗体(页面),所以若是多笔的状况(如 GridView),若有编辑权限,则所有多笔记录皆可编辑。
而操作权限可能会非常多种,以 ERP 系统为例,可能就包含「执行/浏览、新增、删除、修改、打印、汇出、核决...等」操作权限,这样操作权限的控管还要配合其它 UI 的自订控件才比较完整。
@good man
我会使用 BasePage 是有原因的,因为其它的自订服务器控件还可以跟 BasePage 做互动,例如自订工具列(Toolbar)控件,其中有「新增、修改、删除...」等按钮,而 Toolbar 本身就可以判断 BasePage 的使用者权限,自动将相关按钮设为启用/失效。这样开发人员可以不会管到任何权限控管的部分,只需负责撰写商业逻辑的部分。
@要有好的心情
新增一个字段(字段)是否要同步更新中间层,这个要看你的中间层怎么写,我开发的系统所有的字段都是用定义出来的,也就是开发人员不用直接去下 SQL 语法,这种情形下就算增减字段,中间层是无预做任何异动。

批次异动的问题,在一般的 Web 系统比较不会发生,不过若是开发 Web ERP,那批次异动的需求就很大。就像你说的,这种批次异动比较适合使用 WinForm,这点我当然也了解,不过客户的需求就是要硬要使用 WebForm 而不用 WinForm 的 ERP 系统,那就没辨法了。
@nicye
不可能只多了 InsertParamter 就可以,你沒有去更改 Insert 方法的相關參數怎麼可能會處理到該欄位。
@Amir Ai
你可以試著去動態產生 GridView 的 Columns,你會發覺使用 TemplateField 相當麻煩。
@kiler
我指的順序是 GridView.Columns 的欄位順序,並不是資料排序。例如預設「產品編號、產品名稱、數量、單價」,而用戶可以自訂為「數量、單價、產品編號、產品名稱」,也可以將部分的 Column 隱藏。
我比較少用 TemplateField,因為我們的系統中的 GridView 需要提供每個用戶端可以自定 Columns 的順序,而 TemplateField 在動態建立或更換順序時會比較麻煩,所以會把所有會使用到 DataControlField 類型全實作出來。
@菜菜灰
OK. 了解。
收藏
@金色海洋(jyk)
恩,我也有看過你的文章。
在資料結構中有解決這類問題的「前/後序式」演算法,你可以參考看看。
http://caterpillar.onlyfun.net/Gossip/AlgorithmGossip/InFixPostfix.htm
@C#爱好者
看你的需求選擇合適的就行了。
re: ASP.NET 2.0 Client Callback 浅析 jeff377 2008-05-26 20:25  
以下也有關於 CallBack 的文章,供參考。

CallBack 與 UpdatePanel 的效能比較

http://www.cnblogs.com/jeff377/archive/2007/12/09/988347.html

CallBack BasePage (簡化 CallBack 回呼程式碼)
http://www.cnblogs.com/jeff377/archive/2007/12/10/989294.html
@金色海洋(jyk)
使用整數值來表達複選是有使用時機的,例如權限設定「瀏覽=1 新增=2 修改=4 刪除=5」,當使用者判斷該表單是否有修改權時,只需要判斷 (權限值 And 4)=4 就代表有修改權。
@sinmen
謝謝你提供的另一種想法。
@BrianLei(Lei)
謝謝您的指正,CreateChildControls 的確要返回值,這部分沒注意到。
不過可能是 VB.NET 的原因它竟然編譯成功沒有錯誤訊息。
應修正如下:

Protected Overrides Function CreateChildControls(ByVal DataSource As System.Collections.IEnumerable, ByVal DataBinding As Boolean) As Integer
Dim iRowCount As Integer
Dim oTable As Table

iRowCount = MyBase.CreateChildControls(DataSource, DataBinding)
If Me.EmptyShowHeader AndAlso (iRowCount = 0) Then
oTable = CreateEmptyTable()
Me.Controls.Clear()
Me.Controls.Add(oTable)
End If
Return iRowCount
End Function
共2页: 1 2 下一页