自定義webpart引數---動態下拉列表
本篇文章介紹的是在sharepoint 2010中用VS 2010開發自定義webpart。
自定義開發的webpart分為兩種:帶引數的和不帶引數的;帶引數的分為需要繫結外部資料的和不需要繫結外部資料的。
不帶引數的webpart:
這種webpart開發最簡單,只需要將webpart頁面的後臺邏輯處理完就可以,不需要外來的引數。
不需要繫結外部資料的帶引數的webpart:
這種webpart開發,需要在繼承system.web.ui.webcontrols.webparts.webpart的類中增加引數,即如下形式的程式碼:
[Personalizable(),
WebDisplayNameAttribute("FullUrl"),
WebBrowsable]
public string FullUrl
{
get;
set;
}
也可增加emun型別的下拉列表引數(但是其中的引數是在程式碼中寫死的)。
需要繫結外部資料的帶引數的webpart:
這種webpart的開發相對比較麻煩,除了需要在繼承system.web.ui.webcontrols.webparts.webpart的類中增加引數之外,還需要在繼承system.web.ui.webcontrols.webparts.Editorpart的類中繫結外來資料並傳給繼承system.web.ui.webcontrols.webparts.webpart的類中的引數。
在繼承system.web.ui.webcontrols.webparts.Editorpart的類中,需要過載方法:
1. protected override void CreateChildControls():該方法是用來構建編輯webpart時選擇引數的頁面;
2.public override void SyncChanges():該方法是用來繫結外部資料到webpart編輯頁面的控制元件中的;
3.public override bool ApplyChanges():該方法是用來將編輯頁面中控制元件的值回傳給繼承system.web.ui.webcontrols.webparts.webpart的類中的引數。
例子如下:
[ToolboxItemAttribute(false)]
public class Statistics_Monthly : WebPart
{
[Personalizable(),
WebDisplayNameAttribute("工作量統計類別")]
public string BisicCategory
{
get;
set;
}
[Personalizable(),
WebDisplayNameAttribute("工作量統計時間")]
public string StatisticsTime
{
get;
set;
}
// 當更改可視 Web 部件專案項時,Visual Studio 可能會自動更新此路徑。
private const string _ascxPath = @"~/_CONTROLTEMPLATES/StatisticsWebPart_Monthly/Statistics_Monthly/Statistics_MonthlyUserControl.ascx";
protected override void CreateChildControls()
{
Control control = Page.LoadControl(_ascxPath);
if (control != null)
{
((Statistics_MonthlyUserControl)control).webPart = this;
}
Controls.Add(control);
}
public override EditorPartCollection CreateEditorParts()
{
EditorPartCollection baseParts = base.CreateEditorParts();
List<EditorPart> editorParts = new List<EditorPart>(1);
EditorPart part = new Statistics_Monthly_Edit();
part.ID = this.ID + "_Statistics_Monthly_Editor";
part.Title = "Statistics_Monthly變數選擇";
editorParts.Add(part);
return new EditorPartCollection(baseParts, editorParts);
}
}
public class Statistics_Monthly_Edit : EditorPart
{
protected Label label_BasicCategory;
protected DropDownList ddl_BasicCategory;
protected Label label_Time;
protected DropDownList ddl_Year;
protected Label label_Year;
protected DropDownList ddl_Month;
protected Label label_Month;
protected override void CreateChildControls()
{
base.CreateChildControls();
this.label_BasicCategory = new Label();
this.label_BasicCategory.Text = "工作量統計型別:";
this.ddl_BasicCategory = new DropDownList();
this.ddl_BasicCategory.AutoPostBack = true;
this.ddl_BasicCategory.SelectedIndexChanged += new EventHandler(ddl_BasicCategory_SelectedIndexChanged);
this.label_Time = new Label();
this.label_Time.Text = "請選擇顯示時間:";
this.ddl_Year = new DropDownList();
this.ddl_Year.AutoPostBack = true;
this.ddl_Year.SelectedIndexChanged += new EventHandler(ddl_Year_SelectedIndexChanged);
this.label_Year = new Label();
this.label_Year.Text = "年";
this.ddl_Month = new DropDownList();
this.ddl_Month.AutoPostBack = true;
this.ddl_Month.SelectedIndexChanged += new EventHandler(ddl_Month_SelectedIndexChanged);
this.label_Month = new Label();
this.label_Month.Text = "月";
Table tb = new Table();
TableRow row = new TableRow();
TableCell cell1 = new TableCell();
TableCell cell2 = new TableCell();
cell1.Controls.Add(this.label_BasicCategory);
cell2.Controls.Add(this.ddl_BasicCategory);
row.Cells.Add(cell1);
row.Cells.Add(cell2);
tb.Rows.Add(row);
row = new TableRow();
cell1 = new TableCell();
cell2 = new TableCell();
cell1.Controls.Add(this.label_Time);
cell2.Controls.Add(this.ddl_Year);
cell2.Controls.Add(this.label_Year);
cell2.Controls.Add(this.ddl_Month);
cell2.Controls.Add(this.label_Month);
row.Cells.Add(cell1);
row.Cells.Add(cell2);
tb.Rows.Add(row);
this.Controls.Add(tb);
}
protected void ddl_BasicCategory_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void ddl_Year_SelectedIndexChanged(object sender, EventArgs e)
{
}
protected void ddl_Month_SelectedIndexChanged(object sender, EventArgs e)
{
}
public override bool ApplyChanges()
{
this.EnsureChildControls();
Statistics_Monthly webpart = this.WebPartToEdit as Statistics_Monthly;
if (webpart == null)
{
return false;
}
else
{
if (this.ddl_BasicCategory.SelectedItem != null)
{
webpart.BisicCategory = this.ddl_BasicCategory.SelectedValue;
}
else
{
webpart.BisicCategory = string.Empty;
}
if ((this.ddl_Year.SelectedItem != null) && (this.ddl_Month.SelectedItem != null))
{
webpart.StatisticsTime = this.ddl_Year.SelectedValue + "/" + this.ddl_Month.SelectedValue;
}
else
{
webpart.StatisticsTime = string.Empty;
}
return true;
}
}
public override void SyncChanges()
{
EnsureChildControls();
Statistics_Monthly webpart = this.WebPartToEdit as Statistics_Monthly;
if (webpart != null)
{
InitBasicCategory(webpart);
InitStatisticsTime(webpart);
}
}
private void InitBasicCategory(Statistics_Monthly webpart)
{
從外部獲取值並繫結到this.ddl_BasicCategory下拉列表中。
}
private void InitStatisticsTime(Statistics_Monthly webpart)
{
從外部獲取值並繫結到this.ddl_Year和this.ddl_Month的dropdownlist中的值。
}
}
相關推薦
自定義webpart引數---動態下拉列表
本篇文章介紹的是在sharepoint 2010中用VS 2010開發自定義webpart。 自定義開發的webpart分為兩種:帶引數的和不帶引數的;帶引數的分為需要繫結外部資料的和不需要繫結外部資料的。 不帶引數的webp
html 中可以自定義輸入的 select 下拉列表
在專案開發中,往往有這種需求:那就是需要下拉選擇已有的資料列表,當沒有自己需要的資料時,往往需要去管理這些列表資料的畫面去新增,或者在下拉列表後面放一個快捷按鈕,先新增,然後再選。 那麼問題就來了,如果按照上面的操作,往往需要很多步驟,能不能當沒有可選專案時,直接在下拉
topgp combobox動態下拉列表
mit ces ... byte mat date limit update conf 用過TOPGP的都知道,畫面上的下拉列表是寫死在畫面檔上的,每個程序都要手動去維護一遍,很惡心很麻煩,鼎捷也發現了這個問題,在T100上面就全部使用了動態的方式顯示,具體的操作方式就是可
Ajax動態下拉列表
許多頁面上都涉及有下拉框,即select標籤。對於簡單的下拉框,被選擇的資料是不需要改變的,我們可以用寫死。這樣下拉框的資料永遠都是那幾條。 示例: 1 <select> 2 <option>資訊一</option
Android 自定義view:實現ListView下拉的視差特效
一、概述: 現在流型的APP如微信朋友圈,QQ空間,微博個人展示都有視差特效的影子。 如圖:下拉圖片會產生圖片拉昇的效果,放手後圖片有彈回到原處: 那我們如何實現呢? 1)重寫ListView控制元件: 2)重寫裡面的overScrollBy方法
jsp中自定義標籤自動載入下拉框內容
第一步:在web專案下的web-inf的tlds目錄下,新建一個配置檔案,名字為relation.tld,內容如下: 自定義標籤的字首為relation(由short-name標籤決定),屬性有saveField(要儲存到資料庫的欄位名),value(要被選中的資料值)
jq自定義多選下拉列表框
多選 img 插件 國家 http 分享 class 下拉 blog 多選選擇國家插件 https://gitee.com/richard1015/dropDownList jq自定義多選下拉列表框
WPF 自定義下拉列表
LV mage png gif ces hid IT orm false XAML代碼: <Popup x:Name="popupStrategy" StaysOpen="False" PopupAnimation="Scroll" Width="190"
ABAP如何自定義下拉列表 .
app class AD 定義 fault pre amp 列表 nbsp 1. 在選擇屏幕上添加下拉列表控件, 代碼如下: PARAMETERS: auart LIKE vapma-auart AS LISTBOX VISIBLE LENGTH 6
WPF下拉列表自定義樣式
WPF中國自定義Combobox樣式 <Window x:Class="ComboBoxDemo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:
wxpython自定義下拉列表框
自定義wxpython下拉列表框,支援修改邊框顏色,按鈕圖示的動態變換 原理同前兩片文章一樣,使用了兩個wx.staticText做邊框,一個文字框來顯示下拉列表的資料,和一個圖片按鈕,實現下拉的標誌,和一個自帶的列表框, 影藏該列表框,不要原來的樣式,這裡只需要使用它的展示列表的資料功能
自定義下拉列表select樣式
jq: $(".select-head").each(function(){ $(this).click(function(event) {//自定義下拉列表框顯示和隱藏console.log(0);$(this).siblings("ul.option").toggleC
Android中Spinner下拉列表(使用ArrayAdapter和自定義Adapter實現)
今天學習了Spinner元件,使用Spinner相當於從下拉列表中選擇專案,下面演示一下Spinner的使用(分別使用ArrayAdapter和自定義Adapter實現) (一):使用Arr
支援中文/全拼/簡拼以及自定義篩選的下拉列表
簡介 fxss-autoSelectSearch是一款jquery外掛,支援中文/全拼/簡拼等多種搜尋方式的搜尋外掛,還支援清空搜尋列表、強制指定某個搜尋框選擇某項option。 使用 首先必須引入jQuery檔案、fxss-autoSelectS
FreeMarker自定義TemplateDirectiveModel之重複提交&下拉列表
重複提交標籤 public class AvoidRepeatSubmitTag implements TemplateDirectiveModel { public AvoidRepeatSubmitTag() { } public
自定義Spinner(下拉列表)五步走
在Android的UI開發中,Spinner(下拉列表)總是可以用到的,一個簡單的自定義Spinner製作我們只需要記住這重要的五步,一個Spinner就可以應用而生了。 (1)新建一個Android工程,名字為SpinnerTest1。修改layout下的main.xml
分別在javascript和JSP中動態設置下拉列表默認值
技術 bsp 分享 列表 tex align scrip jsp頁面 sin 一.JavaScript中動態設置select標簽中<option>選項的默認值: 比如,要完成下邊這個下拉列表的動態顯示,並且當進行前後翻頁時,下拉列表中的值自動更新為當前頁碼
ExtJS4下拉列表框寬度自適應
/** * 獲取下拉列表框定義 */ getBoxTextEditor: function (box_text_store) { //定義了下拉列表框 var editor = new Ext
C# 動態顯示下拉列表的資料
public List<UserInfo> list = new List<UserInfo>(); //查詢採購員 SqlConnection conn = new SqlConnection("Server=.;Database=JiYunMaterials
jQuery動態新增下拉列表選項
不說了,直接上程式碼: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String