您的位置:首页 > 其它

Sharepoint 自定义字段(栏) 动态获取数据

2010-08-24 08:54 393 查看
想了半天,不知道这个题目怎么写。

那就描述一下:

编写一个自定义字段,这个字段继承于MultiChoices,这个Choices的项是动态的。

1:我们需要编写一个EventHander。这个EventHander是用来将自定义字段的值绑定。直接点就是:给自定义字段赋值咯。

我们为什么要用自定义字段呢,是因为,我们Sharepoint里面的查阅项DropDownList Value和Text 是相同的值。而我们在使用的时候,需要Value和Text 是不同的值。

直接贴代码:这是EventHander的主要代码。

代码 public class AppoveManFiledControl : BaseFieldControl {
private AppoveManFiled field;
private DropDownList ddlist;

public AppoveManFiledControl(AppoveManFiled parentField) {
this.field = parentField;
this.ddlist = new DropDownList();
}

protected override void OnInit(EventArgs e) {
base.OnInit(e);
}

protected override void CreateChildControls() {
base.CreateChildControls();
if (this.Field != null && this.ControlMode != SPControlMode.Display) {
ddlist = new DropDownList();
if (this.field.Choices.Count != 0) {
ddlist.Items.Add(new ListItem());
for (int i = 0; i < field.Choices.Count; i++) {
string[] valuestr = this.field.Choices[i].Split(';');
ListItem newItem = new ListItem(valuestr[1], valuestr[0]);
ddlist.Items.Add(newItem);
}
}
this.Controls.Add(ddlist);
}
}

protected override void Render(HtmlTextWriter output) {
base.Render(output);
}

public override object Value {
get {
EnsureChildControls();
if (string.Empty.Equals(ddlist.SelectedValue)) { return null; }
return ddlist.SelectedValue+","+ddlist.SelectedItem.Text;
}
set {
EnsureChildControls();
//ddlist.SelectedValue = (string)this.ItemFieldValue;
ddlist.SelectedValue = this.ItemFieldValue.ToString().Split(',')[0];
}
}

public override void Focus() {
EnsureChildControls();
ddlist.Focus();
}
}

主要实现功能,我们在工作流审批时,需要动态选择下一级审批人,审批人是从工作流流程配置中获取的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: