重置sharepoint文档库列表的条码值

本文介绍了在SharePoint中如何解决手动输入条码值生成条码的问题,通过使用Barcode类的ProvisionBarcode与ProvisionBarcodeWithValue方法,可以轻松实现条码的定制化生成。
下午公司需求人员和我说需要文档要带条码,心想这个还不简单,直接文档库设置-》信息管理策略设置-》定义策略-》把条码勾上。简单搞定~~~
然后在视图里把条码值和条码图形勾上,效果出来了。叫需求人员过来看一下,结果他提了一个需要自己传入条码值生成条码的需求,咱想,这还不简单,查一下Field,果然有个叫_dlc_BarcodeValue的field值,里面保存着条码值呢,修改他,update一下,刷新页面,傻了,只有条码值变了,条码图像并没有改变。这下犯难了,接着查Field,里面还有一个_dlc_BarcodePreview,和_dlc_BarcodeImage的属性,其中_dlc_BarcodeImage里存的是一个图片,显示出来的string全是乱七八糟的二进制的东西,看来这三个field都需要更改了,难道要我自己生成一个条形码的image然后存进去?

在GOOGLE上翻半天也没有什么结果。最后翻SDK,WSS SDK里还没有,是在Office sharepoint server文档中找到一个Barcode类,它有两个静态方法ProvisionBarcode 和ProvisionBarcodeWithValue 。

第一个方法是为SPListitem重新生成一个条形码值和图片,条码值是随机生成的,而第二个是按指定的条码值生成条码。
两个方法使用非常简单,我代码都不贴了,直接把参数贴出来吧
public static void ProvisionBarcode (
    SPListItem spListItem,
    
bool fOverwrite,
    
out string strValue,
    
out Image imBarcode
)
public static void ProvisionBarcodeWithValue (
    SPListItem spListItem,
    
bool fOverwrite,
    
ref string strValue,
    
out Image imBarcode
)

两个方法参数基本上一样
spListItem需要重新生成的SPListItem。
fOverwrite
是否要覆盖当前的条码值(显然是要设成true)
strValue
条码值(这里注意一下,ProvisionBarcode 加上了out,意味着你传的这个strValue不需要初始化,方法完成后,这个strValue被赋了新的条码值,而ProvisionBarcodeWithValue使用的是ref,这要求你传入一个条码值,strValue必须先赋值,方法会按你传入的条码值生成图片等信息,还有,条码值是一个长度为10的字符串)
imBarcode
条码图像的Image对象。加上了out,不需要初始化。


乱七八糟的研究了点小东西……

转载于:https://www.cnblogs.com/pengyuan512/archive/2008/05/20/1203470.html

<think>嗯,用户想了解如何用JavaScript实现点击重置按钮后,下拉列表选中指定。首先,我得理清楚他们的需求。通常,HTML的reset按钮会把表单元素重置到初始状态,但用户可能希望重置到一个特定的,而不是默认。所以,我需要找到覆盖默认重置行为的方法。 首先,应该考虑如何阻止默认的重置动作。可能需要给表单添加一个事件监听器,监听reset事件,然后在事件触发时执行自定义操作。这样,当用户点击重置按钮时,不会完全清除表单,而是将下拉菜单设置为指定的。 接下来,具体步骤是怎样的呢?首先,获取表单元素和下拉列表的引用。然后,给表单添加一个reset事件监听器。在事件处理函数中,阻止默认行为,然后设置下拉列表的value属性为指定的。例如,如果下拉列表的id是mySelect,指定为defaultOption,那么在处理函数中将mySelect.value设为'defaultOption'。 不过要注意,可能需要处理表单中的其他元素,但用户的问题可能只关注下拉列表。另外,是否需要考虑兼容性问题?现代浏览器应该都支持reset事件和value属性设置,但可能需要提醒用户注意这一点。 还有,如果用户使用的是原生的重置按钮,也就是<input type="reset">或者<button type="reset">,那么表单的reset事件会被触发。所以,正确的做法是捕获这个事件,并执行自定义重置逻辑。 另外,是否需要保留其他表单元素的默认重置行为?比如,如果用户除了下拉列表还有其他输入框,可能希望在自定义重置时,其他元素仍然恢复默认。这时候,可能需要先执行默认的重置,再修改下拉列表。但根据用户的需求,可能希望完全自定义,所以需要阻止默认行为,然后手动设置所有需要的。 不过用户的问题可能更简单,只需要处理下拉列表。所以示例代码可能只需要阻止默认,然后设置该下拉列表。但为了安全起见,可能还是应该先执行event.preventDefault(),然后设置下拉列表,而其他元素可能保持原样,或者用户需要自己处理其他元素。 总结一下,步骤应该是: 1. 获取表单和下拉列表的DOM元素。 2. 给表单添加reset事件监听器。 3. 在事件处理函数中阻止默认重置。 4. 设置下拉列表为指定。 然后,示例代码可以展示这个过程。比如: HTML部分有一个表单,里面有一个下拉列表和一个重置按钮。JavaScript部分获取表单元素,添加事件监听器,处理reset事件,设置下拉的value。 可能需要提醒用户,指定的必须是下拉列表选项中某个value属性的,否则设置可能不生效。另外,如果有多个下拉列表需要重置,需要分别处理。 还有,是否可以考虑使用JavaScript直接修改按钮的点击事件,而不是表单的reset事件?比如,给按钮添加click事件,然后处理。不过这样可能不够可靠,因为用户可能通过其他方式触发重置,比如按Enter键在表单中,或者其他脚本触发reset方法。所以,监听表单的reset事件更全面。 所以,最终的解决方案应该是基于监听表单的reset事件,阻止默认行为,然后设置下拉列表。这样无论通过什么方式触发重置,都能正确执行自定义逻辑。</think>### JavaScript实现点击重置按钮后下拉列表选中指定 要实现点击重置按钮后让下拉列表选中指定,**核心逻辑是覆盖默认重置行为,通过事件监听手动设置目标**。以下是分步实现方法: --- #### 一、HTML结构示例 ```html <form id="myForm"> <select id="mySelect"> <option value="default">请选择</option> <option value="apple">苹果</option> <option value="banana">香蕉</option> </select> <!-- 原生重置按钮 --> <button type="reset">重置表单</button> <!-- 自定义重置按钮 --> <button type="button" id="customReset">自定义重置</button> </form> ``` --- #### 二、JavaScript实现步骤 ##### 方法1:监听表单的`reset`事件(覆盖原生重置) ```javascript const form = document.getElementById("myForm"); const select = document.getElementById("mySelect"); // 监听表单的reset事件 form.addEventListener("reset", (event) => { // 阻止默认重置行为(避免清空所有输入) event.preventDefault(); // 手动设置下拉列表 select.value = "default"; }); ``` ##### 方法2:自定义按钮绑定点击事件 ```javascript const customResetBtn = document.getElementById("customReset"); customResetBtn.addEventListener("click", () => { // 直接设置下拉列表 select.value = "default"; // 可选:重置其他表单字段 // form.reset(); }); ``` --- #### 三、关键点说明 1. **阻止默认行为** 使用`event.preventDefault()`阻止原生重置逻辑,避免表单恢复至初始HTML状态。 2. **指定目标** 通过`select.value = "目标"`直接设置下拉列表的选中项,确保与`<option>`的`value`属性匹配。 3. **兼容性** 现代浏览器均支持`reset`事件和`select.value`属性,无需额外兼容处理。 --- #### 四、扩展场景 - **多下拉列表重置**:遍历所有`<select>`元素并设置。 - **动态默认**:根据条件从服务器或本地存储中读取默认。 - **保留部分重置逻辑**:先调用`form.reset()`再覆盖特定字段。 --- 通过上述方法,即可灵活控制重置按钮的行为,实现精准的下拉列表重置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值