WebFormView如何用程式控制自行帶值的方法?
可以使用FormView的DataBound事件來完成,如下:
protected void wfvMaster_DataBound(object sender, EventArgs e)
{
if (wfvMaster.CurrentMode == FormViewMode.Insert) // Insert才做
{
WebRefVal ctrl = (WebRefVal)wfvMaster.FindControl("WebRefVal1"); //假設名稱為WebRefVal1
ctrl.BindingValue = "001"; //設為001
WebDateTimePicker ctrl1 = (WebDateTimePicker) wfvMaster.FindControl ("WebDateTimePicker1");
ctrl1.Text = System.DateTime.Now.ToShortDateString();//如果DateTime型態
ctrl1.DateString = System.DateTime.Now.ToString("yyyyMMdd"); //如果為VarChar(8)型態.
}
}
WebFormView 修改時如何帶預設值進去?
預設值是只有在新增狀態下才有效.如果想修改時間和人員的欄位元有兩種方式:
1. 如果在Client的畫面有顯示這兩個欄位,可以直接在FormView的事件寫程式修改,比如ItemUpdating事件,去查找控制項並賦值.也可採用e.Values["FieldName"] = ....的賦值方式。
2. 如果不在Client端顯示這兩個欄位,可以在Server端UpdateComp的BeforeModify事件對這兩個欄位賦值.或者,可以直接在UPdateComp的FieldsAttr上直接設定修改欄位,無需寫程式。
WebFormView無法開啟,提示錯誤: 建立控制項時發生錯誤,其他控制項已使用ID’TA001TextBox’?
在FormView裏存在相同ID的控制項,可能是通過Copy所造成的,可以用以下方法解決:
點擊下面的原始檔標簽,查找所有ID為TA001TextBox的控制項,更名即可。
動態產生(page_load之後)的WebDateTimePicker,如何給預設值? 為何用.text或.caption設定都沒效果?
如果是要給新增的欄位預設值,可以使用WebDafault元件.因?Page_load執行的時機有很多,每次post都會執行,不是很容易控制。但如果只是對網頁上的DateTimePicker(沒有Bind到欄位)設初值,只要給Text賦值就可以了,如果沒有效果請debug一下,看是否有執行到賦值的程式或者有其他程式有影響到。
DateTimePicker我可以自由選擇我要的格式嗎?像是YYYYMMDD OR YYYY/MM/DD?
WebDateTimePicker可以設定WebDateTimePicker1.Localize是 true 還是 false,如果設定為true會依IIS上控制臺地區語言選項的日期格式;設定為false則是顯示西曆。
在FormView中如何讓WebDateTimePicker在瀏覽時也顯示為YYYY/MM/DD格式? (已將WebDateTimePicker的 DataFormat屬性設為 ShortDate)
在Data Bind的設定頁,設定Format為ShortDate。
在WEB開發中用到WebDateTimePicker控制項, 有沒有什麼方法可以使我寫入資料庫時的格式是yyyyMMdd(char(8))?
將WebDateTimePicker的DateTimeType屬性設為VarChar,然後將WebDateTimePicker的DateString綁定到你需要的欄位元(不要Binding到text) 。
一個Master檔如果有2個Detail檔的情況,如果Detail2使用WebGridView,則在存檔的時候,無法更新,應如何處理。
因為第二個Detail的WebGridView中,必須要定義Master相對的鍵值欄位,如果不想顯示該欄位,有2種方法,如下:
1. 將關聯key轉為TemplateField,然后使用vs本身的HidenField來bind。
2. 直接將WebGridView的該欄位的Visible設為false,然后設定一下WebGridView的DataKeyNames屬性,須設定為關聯key欄位即可,但不要設定detail的其他key欄位。
如何在WebGridView中,讓User自訂OrderBy的次序呢? (我在InfoCommand用了Order By,就固定住了)
Client端的資料是依據server 端的SQL選擇取來的,所以會依據InfoComamd的order by來排序,Client端如果需要重新排序,則要通過WebGridView.Sort() 方法來實現。可在WebGridView_Load事件中撰寫以下程式:
GridView.Sort(string sortExpression, SortDirection sortDirection);
WebGridView可以自已寫code篩選要呈現的資料嗎?哪個事件下可以運用呢?
WebGridView的資料來源是WebDataSource,您可以直接對WebDataSource的innerDataSet的Table資料做過濾就可以.
或者換一種方法:
1. 加一個WebDataSource,關聯到一個WebDataSet(Server要對應一個InfoCommand)
2. 您可以在適當的時機對WebDataSource執行SetWhere,比如SetWhere("orderid =’18259’")例如:Formview的PageIndexChanged事件。
如何在WebGridView自行帶值的方法。
可以利用RowDataBound的事件來設定欄位的初值, 如下:
protected void WebGridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//做Default操作(Insert時使用)
if (e.Row.RowType == DataControlRowType.Footer && WebGridView1.ShowFooter)
{
Control ctrl = e.Row.FindControl("TextBox1");
if (ctrl != null && ctrl is TextBox)
{
TextBox txt = (TextBox)ctrl;
txt.Text = "abc";
}
}
//做Default操作(Update時使用)
if (e.Row.RowType == DataControlRowType.DataRow)
{
Control ctrl = e.Row.FindControl("TextBox1");
if (ctrl != null && ctrl is TextBox)
{
TextBox txt = (TextBox)ctrl;
txt.Text = "abc";
}
}
}
GridView 的Insert 事件要寫在那裡,如何去判斷兩個欄位結束日期是否比開始日期還要大?
可以通過WebGridView的RowInserting來寫
WebGridView1_RowInserting(Object sender, GridViewUpdateEventArgs e)
{
DateTime timestart = e.NewValues["timestart"];
DateTime timeend = e.NewValues["timeend"];
if(timeend < tiemstart)
{
e.Cancel = true;
}
}
WebGridView刪除的確認.
可以在WebGridView的OnClientClick屬性中,設定以下Java Script內容即可做到。return confirm('sure to return?')
DataGirdView中如何控制欄位的輸入長度限制
可通過設定GridView的Columns中的MaxInputLength屬性來限定長度。
如何設定 GridView下方頁數靠左邊對齊呢?
WebGridView的PagerStyle屬性的HorizontalAlign可完成此功能。
如何在WebGridView網頁中以HyperLink方式傳遞參數到另一個網頁?
在WebGridView中將Columns內的欄位, 改用HyperLinkFields的型態,設定DataTextField為綁定的欄位,如果你要HyperLink網頁沒有要傳參數,直接使用 NavigateURL即可;如果你要動態傳遞參數,則須設定DataNavigateURLFormatString連結到你要的HyperLink頁面,如: ~/TEST/W000F.aspx?CUST={0} ,連結到 W00F.asp,傳一個變數名稱CUST,內容則定義在DataNavigateURLFields,如設為CustomerID代表要傳CustomerID到CUST變數中。
最後在W000F.aspx中可以取得Cust變數並處理資料的對應:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitializeComponent();
Master.DataSource = WMaster;
string str = Page.Request.QueryString["Cust"]; //取得Cust的變數
Master.SetWhere("CustomerID='" + str + "'"); //設定為相對的資料.
}
}
WebDataSource的EnableViewState可以設為False嗎?
WebDataSource的EnableViewState是一定要設定為True的,這是因為WebDataSource的一些屬性是存在ViewState中,如果將ViewState設為False,會導致一些屬性在網頁返回時無法保存上一次的狀態,而導致意想不到的結果。
當Detail有資料列時,如何讓A欄位值為0時,設置該筆資料列為無法編輯?
可以在RowDataBound事件中處理,先將CommandField轉換成TemplateField,找到編輯按鈕的ID,參考代碼:
protected void wgvDetail_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowIndex != wgvDetail.EditItemIndex)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string text = e.Row.Cells[1].Text; //如果A欄位不是TemplateField;
string text = (e.Row.FindControl("labelA") as Label).Text; //如果A欄位是TemplateField
if (text == "0")
{
ImageButton edit = (ImageButton)e.Row.FindControl("ImageButtonEdit");
if (edit != null)
{
edit.Visible = false;
}
}
}
}
}
是否可以依資料欄位內容,將該筆資料的顯示行背景顏色設定為指定顏色EX:欄位內容文字為A則為紅色,為B則為藍色?
可以在gridview的RowDataBound事件寫程式:
if (e.Row.RowType == DataControlRowType.DataRow)
{
//取得當前筆資料的某欄位元值以便比較.其中Cells[i]的i為欄位在GridView中的次序
string ss = e.Row.Cells[3].Text;
if(ss == "your value")
{
e.Row.BackColor = Color.Red;
}
}
如何讓WebGridView即時刷新?
撰寫WebGridView.DataBind();
請問為何在WebGridView中新增日期資料存檔後會無法顯示出來?
請檢查以下地方:
1.是否有正確的Binding(DateTime型別請Binding到text,Varchar(8)請Binding到DateString) 。
2.AddNewRowControls是否有加入此欄位。
WebGridView自帶的有一個跳轉頁的功能,如果要做一個輸入框輸入頁碼,然後就跳轉到這一頁,該怎麼實現?
如果是想在網頁上放置一個Textbox用於輸入頁簽,改變gridview的當前頁,可以使用下面的方法:
webGridView.PageIndex = Convert.Int16(Textbox1.Text) - 1;
如果想嚴謹一點,可以先判斷一下Textbox的Text內容是否合法。
要如何使當WebCheckBox == True 時, GridView 不要進入修改狀態?
可以寫在WebGridView的RowDataBound事件中
public void WebGridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
WebCheckBox cb = (WebCheckBox)e.Row.FindControl("WebCheckBox1");
if (cb.Checked == true)
{
ImageButton btn = (ImageButton)e.Row.FindControl("ImageButton1");
btn.OnClientClick = "alert('單頭狀態巳確認,無法修改單身資料');return false;";
}
}
WebGridView排序後按下編輯跳新視窗內容會錯?
請檢查一下GridView的OpenEditUrlInServerMode的屬性是否為true,如果是請設為false。
請問一下如何取得WebgGidView裡被選擇的某一資料列?
WebGridView.SelectedRow就是選中的資料,可以用ebGridView.SelectedRow.FindControls(contrilid)(取得Template中的元件),或者WebGridView.SelectedRow.Cells[index]來取值。
Web的Detail如何隱藏關聯key欄位?
有兩種方法:
1. 將關聯key轉為TemplateField,然後使用VS本身的HidenField來bind。
2. 直接將WebGridView的該欄位的Visible設為false,然後設定一下WebGridView的DataKeyNames,只要設定Master跟Detail之間的關聯key就可以,不要設定Detail的其他key欄位。
如何在WebGridView 裡抓取欄位值?
1.更改可以在RowUpdating和RowUpdated事件中用:e.NewValues[fieldname], e.OldValues[fieldname]
2.RowDataBound事件也有e.Row.Cells[index]
3.其他地方可利用WebGridView.Rows[WebGridView.SelectedIndex].FindControls(controlname)讀到控制項,再轉換成相應類型來取值
注意:FindControls適用於比如轉換成TemplateField的欄位,你自己會重新貼控制項,比如TextBox,這裏的ControlName,就是TextBox的名字。
另外,也可以WebGridView.Rows[WebGridView.SelectedIndex].Cells[index],只要是Row,都可以採取Cells,或者findControls的方式。
如何設定 GridView 下方頁數 靠左邊對齊?
WebGridView的PagerStyle屬性HorizontalAlign。
怎樣用WebGridView實現類似AJAX的功能.即把WebGridView快速換頁或排序,且其他的元件都不會變動到?
方法:
1. 先把那些button的templateField 換成commandField。
2. 然後設定WebGridView的EnableSortingAndPagingCallbacks屬性、AllowPaging屬性和AllowSorting設為true。
3. 在html的第一行最後的%前,加上下面這行:SmartNavigation="True"。
WebGridView將範本列的TextBox設為ReadOnly後,保存時卻獲取不到這個欄位的值?
可以使用HiddenField控制項,也可以把原來的TextBox,改成HTML控制項,Input(Text),或者在Textbox的keyPress事件中用程式控制輸入無效,比如在Load事件寫:
(sender as TextBox).Attributes["onkeydown"] = "if(event.keyCode!=9) return false;";
(sender as TextBox).Attributes["oncontextmenu"] = "return false;";
以上是設定除tab外,其他輸入都無效,以及粘貼功能也要禁止。
如何實現在使用WebClientQuery1時,在Page_Load時先讓 GridView1 隱藏,等使用者按下Button1(查詢)後才讓GridView1 顯示.
1.WebGridView的visible=false
2.Page_Load撰寫:
WebClientQuery1.Show(Panel1)
3.Button1.OnClick撰寫:
WebClientQuery1.Execute(Panel1);
WebGridView1.Visible = true;
WebGridView1.DataBind();
是否有方法可以在 WebGridView 上按下Detail檔的 Update 鈕後就自動儲存?
不可以,.Master+Detail的機制就是只能由Master來存儲,Detail不能單獨存檔,不然會破壞整個機制。如果一定要這樣做,可以在GridView的RowUpdated的地方,執行WebDataSet.ApplyUpdates();如果目的只在於新增、修改及刪除 Detail 的資料而已,可以把 Master 的屬性設為唯讀即可。
我想在WebNavigator按下新增時,WebFormView有個label會直接帶入登入者的姓名?
可在WebFormView的DataBound的事件中寫入,程式如下:
protected void WebFormView1_DataBound(object sender, EventArgs e)
{
if (WebFormView1.CurrentMode == FormViewMode.Insert)
{
Label KeyinNameLabel = (Label)WebFormView1.FindControl("KeyinNameLabel");//KeyinNameLabel為該Label的ID
KeyinNameLabel.Text = CliUtils.fUserName;
}
}
WebNavigator的自訂Control的ControlText失效,自訂的Control都不會顯示出ControlText的內容,反而顯示ControlName?
1.打開Srvtools下的WebNavigator.cs,找到protected virtual void createButton(HtmlTextWriter writer, ControlItem ctrl, WebGridView gdView)方法,在開始的switch中將default: tooltiptext = ctrl.ControlName; break;修改為 default: tooltiptext = ctrl.ControlText; break;
2.Rebuild Srvtools
3.重新InitEEP
在MyWeb中如果新增了一個資料夾,結果新增項目的WebNavigator的圖示都無法顯示出來?
網頁設計因?很多都是使用相對路徑的,所以改變資料夾的深度(比如資料夾內再加資料夾)會導致類似的問題,網頁的設計應在網站的下一層,即您說的MyWeb這一層。
有兩個 DropDownList 前一個保存類別,後一個顯示有關類別的所有資訊,當PacketRecords有設值時且實際記錄數大於PacketRecord時,資料顯示不正常?
這是因為假設PacketRecords設定的是1000,使用DropDownList後面是沒有時機再去抓取下1000筆資料,這種情況建議可改用WebRefval元件。WebRefVal可以設置PacketRecord提高效能,並且可以通過WhereItem過濾設定的條件,條件值可以使用一個自定義函數返回值。注意,WebRefVal的PostBackButtonClick屬性需設定為true。
如果WebRefVal預設為10筆為一頁,是否可以自行設定不分頁,或指定分頁資料數?
所有的WebRefval都是使用一個設定的,所以,如果要修改,就是所有的WebRefval都會影響到.您可以更改..\EEP2006\EEPWebClient\InnerPages\frmRefval.aspx,將其中的PageSize更改。
WebRefVal的WhereItem項目如何動態新增、刪除?
可透過程式完成,程式如下:
WRVClass.WhereItem.Clear(); // WRVClass為WebRefVal
Srvtools.WebWhereItem newWhereItem1 = new Srvtools.WebWhereItem();
newWhereItem1.Condition = "=";
newWhereItem1.FieldName = "Active";
newWhereItem1.Value = "True";
WRVClass.WhereItem.Add(newWhereItem1);
WebRefVal參考的WebDataSource在SetWhere後沒有作用?
請將WebRefVal的PostBackClick設為True。
如何在FormView的insert及edit時,動態設定WebColumnMatch?
可以在WebRefval的Load事件寫如下程式:
WebRefVal wfv = (sender as WebRefVal);
WebColumnMatch wcm = new WebColumnMatch();
wcm.SrcField = "City";
wcm.DestControlID = "TextBox2";
wfv.ColumnMatch.Add(wcm);
請依據實際情況做相應修改。
WebRefVal無法帶出值?
請檢查問題:
1. ValueMember是不是唯一值。
2. 焦點需要離開才能做ColumnMatch。
WebRefVal在瀏覽狀態下,如何顯示[文字],而不是顯示[值]?
方法:
1. 將InsertTemplate內的WebRefVal複製到ItemTemplate內,並將WebRefVal.DataTextField設定為[文字] 。
2. 並將ReadOnly設為True。
3. 將BackColor設為Transparent。
使用WebRefVal,當切換網頁後個別欄位原本應該顯示名稱,但卻顯示代號?
問題原因是顯示有問題的資料表欄位型別是char,而沒問題的是varchar(用nvarchar也可以),由於char的型別會導致在不滿長度的內容時,系統自動對欄位內的值加入空格,導致系統找不到相互匹配的值。
WebRefVal選單中的日期不要出現時間,要怎麼設定?
WebRefVal的Columns是無法設定Format的,目前只能從Select欄位中來轉換,如 Convert(char(10), OrderDate, 102) 這種命令。
WebTreeView中,如何在新增了一個子節點後,將該節點設定為選中狀態?
需寫一個遞迴程式:
public TreeNode Find(TreeNode node)
{
if(node.Text == "YourText") return node;
for (int i = 0; i < node.ChildNodes.Count; i++)
{
TreeNode nd = Find(node.ChildNodes[i]);
if (nd != null)
return nd;
}
return null;
}
再寫一個查找,比如放在ButtonClick:
TreeNode node = null;
for (int i = 0; i < WebTreeView1.Nodes.Count; i++)
{
node = Find(WebTreeView1.Nodes[i]);
if (node != null) break;
}
node.Select();
WebTreeView的新增及修改能否不採用彈出視窗的方式?
WebTreeView的編輯方式目前的規格就是使用彈出視窗的方式,如果您覺得這種方式不符合您的需求,您可以自行通過Textbox來編輯資料,用程式新增或更改到WebDataSource中,類似我們EEPManager中對菜單的編輯。
想用TreeView綁定從存儲過程返回的一個Cursor(有id,pid項),請問該如何處理?
因?TreeView只能binding到DataSource,而DataSource又不能直接使用存儲過程做?資料來源,所以需要一種妥協的方法來整合。
1. Server端放置一個InfoCommand,可以通過sql語句取得一個跟存儲過程返回資料完全一樣的結構。
2. Client端關聯到此InfoCommand。
3. 顯示的時候,可以先取得存儲過程的資料,然後用程式新增到WebDataSource的InnerDataSet中。
假設這個WebDataSource的ID為WebDataSource1,代碼參考如下
DataSet ds = new DataSet();
string str = "AT035CMA22J100A0001";
object[] ret = Srvtools.CliUtils.CallMethod("bom_info", "Call_TreeView", new object[] {str});
if (ret[0].ToString() == "0")
{
ds = (DataSet)ret[1];
WebDataSource1.InnerDataSet = ds;
WebDataSource1.DataMember = ds.Tables[0].TableName;
WebTreeView1.WebDataSourceID = "WebDataSource1";
WebTreeView1.KeyField = "TREE_ID";
WebTreeView1.ParentField ="PID";
WebTreeView1.TextField = "PART_NO";
WebTreeView1.Initial();
}
為何我在Web發布後,之前目錄的User上傳檔案會不見?
這是VS在Web發布時的一個正常現象,如果你的檔案資料存放目錄與aspx程式目錄相近時,當你重新發佈aspx程式時,該aspx的目錄之下的資料目錄也會被重新覆蓋,所以建議發布前必須先對資料目錄進行備份,或者讓資料路徑與程式路徑分開出來,以免發生以上的情況。
可以把Web Server(IIS Server)和 EEPNetServer放在不同的電腦上嗎?
可以,需要修改EEPWebClient.exe.config文件中的IP地址為對應的EEPNetServer的地址。
發行時選擇必要條件後,安裝發行的Client端,會出現CGI TimeOut的錯誤?
必要安裝檔的下載位置應該設定為廠商位置,請確定在發佈路徑下有這幾個安裝文件,
如果有,可能是IIS的網站的執行權限設成『純腳本與可執行文件』引起的,請改為『純腳本』
在IIS上執行程式時,出現錯誤信息:拒絕存取路徑 'D:\Publisher\......\xxx.xml'?
IIS的使用權限,"寫入"權限打勾就可以了。
已重新發佈更新的頁面,為何在IIS中仍然報錯,而從VS中瀏覽則沒有問題?
重新發佈後,需要重新啟動IIS,刷新是沒有用的。
發佈後,開啟IE出現錯誤訊息:”Failed to access IIS metabase…….”?
安裝完IIS後,在Internet服務中,建立虛擬路徑後要對該路徑的屬性修改一下,將c#版本號輸入.然後做以下的註冊,解決辦法:
開啟Dos模式,執行
C:\WINNT\Microsoft.NET\Framework\v2.0.50727>aspnet_regIIS.exe -i
運行過程:
Start installing ASP.NET (2.0.50727)
...................................
Finished installing ASP.NET (2.0.50727)
發佈後打開頁面的WebNavigator控制項的查詢按鈕鏈接的frmNavQuery.aspx頁面默認成了開發機的路徑了,導致頁面無法打開,請問如何解決?
發佈後,在IIS那台機器需要執行InitEEP,設定WebClintDirectory為發佈後網站的實際路徑,執行Apply和Install Web GAC。
網站不是默認的EEPWebClient,而是EEP2006下的/BETHELNET/虛擬目錄,請問要註意哪些地方?
1. InitEEP的WebClient路徑要更改,改好後,不要忘記點擊Apply。
2. 網站路徑需要有原EEPWebClient下的必要檔,比如幾個Folder和網頁。
3. Solution裏面添加的網站不能是EEPWebClient,而是BETHELNET,這樣添加引用才是加到了正確的路徑下,以BETHELNET例子說,原EEPWebClient路徑下的檔,需要放到BETHELNET路徑下而成為一個網站。
怎樣做到Publish WebSite時,某個目錄不要蓋掉?
建議直接在發佈的目的路徑下創建資料夾,而不是在網站中創建,或者在發佈前將這個路徑先刪除,發佈好以後再恢復。
新增的webDataSource無法使用SetWhere?
如果WebDataSource是連接WebDataSet,請在Page_Load事件中加入
WebDataSource.DataSource = WebDataSet,如果WebDataSource是使用SelectCommand,請確認WebDataSource.SelectCommand屬性有設值。
如何實現二個以上的欄位的重複檢查功能?
如果是多個key欄位的組合,直接設定DefaultValidate的DuplicateCheck和DuplicateCheckMode屬性就可以了,如果是Master設定為ByWhere,如果是Detail則設定為ByLocal。
如果不是key的欄位組合,可以在DefaultValidate中定義某一個代表性欄位,使用Validate自定義方法,如定一個MyCheck的方法,將訊息設定為”該資料已經重覆”,程式如下:
Public bool MyCheck(Object var)
{ String s=var.ToString();
DataSet ds = InfoDataSet1.Execute("select count (*) from Yourtable where Yourkey=’"+s+”’”);
if (Convert.ToInt16(ds.Tables[0].Rows[0][0]) > 0)
{
…
return false;
}
else
{
return true;
}
}
請問WebValidate可以檢查欄位的字數嗎?例如此欄位只能輸入10個byte,超過就顯示訊息,有這功能嗎?
可以使用自定義方法實現,如CheckBytes();
public bool CheckBytes(string value)
{
if(value.Length > 10)//如果是英文可以使用這個方法,中文的話要根據編碼不同另行考慮
{
return false;
}
}
怎樣對GridView內的新增、修改、刪除按鈕做管控?
提供兩種方法供參考:
1.使用WebSecurity元件,直接對WebDataSource進行權限控制,進而達到對各輸入元件的控制。
2. 自己寫程式實現。
如在GridViewRowDataBound事件中,您可以通過如下程式設定是否顯示相應的button.
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (不能編輯) // 設定當什麼條件下, 要隱藏Button
{
(e.Row.Cells[0].FindControl("ImageButton1") as ImageButton).Visible = false;
}
}
如何在WebForm 在按下存檔後自動計算特定某個欄位的值?
有兩個方法可以達到這些要求,如下:
1. 如果此欄位在Web頁面上有配合的元件可顯示,可以直接在元件的事件中設計,比如在WebFormView中顯示時可以在ItemUpdating事件(edit的時候),ItemInserting(新增的時候):
e.Values["fieldname"] = yourvalue;
如果在WebGridView中顯示時,可以在RowUpdating事件(edit的時候),RowInserting(新增的時候):
e.NewValues["fieldname"] = yourvalue;
這樣可以即時顯示新的內容.如果無需另外更新顯示。
2. 您可以直接在Server端的UpdateComp的FieldAttrs中設定欄位的預設值,或者直接在UpdateComp的BeforeApply事件中直接執行:
UpdateComp.SetFieldValue("fieldname", value);
這個方式可以在Server端直接控制要存入資料庫的最後結果。
如何在EEP設計全域變數
WebForm可以使用HttpContext.Current.Session來保存全域變數,如下:
HttpContext.Current.Session["var"] = value;
讀值: object obj = HttpContext.Current.Session["var"]
"var"是Session的變數。
如何在登入後的頁面中去掉或隱藏TreeView菜單?
可以在WebClientMain.aspx內Source中的Body中添加:
onload="IMG1_onclick(document.getElementById('IMG1')),就可以在登錄的時候,將TreeView向左隱藏。