讯光科技
WebForm
  • WebCheckBox
  • WebClientQuery
  • WebFormView
  • WebDateTimePicker
  • WebGridView
  • WebHypeLink
  • WebImage
  • WebMail
  • WebMultiLanguage
  • WebNavigator
  • WebRefVal
  • WebTreeView
  • Web發佈
  • WebForm其他問題

WebCheckBox

當前位置:首頁>常見問答>WebForm


Web CheckBox增加Bing到String(Y/N) 無法出現(Y/N)? 在此種情況下,請檢查3個屬性設定: 1.DataBindings請Binding到CheckBinding 2.BindingType:String 3.MultiCheckPostBack:設為false

WebClientQuery

當前位置:首頁>常見問答>WebForm


使用WebClientQuery,如何在User使用預設條件外,再加上A=1的WHERE條件? 可通過WebClientQuery的GetWhere的方法來取得Where的條件,然後自行SetWhere string where = WebClientQuery1.GetWhere(Panel1); where = where + " and A=1"; Master.SetWhere(where); WebGridView1.DataBind();
呼叫出aspx的form時,錯誤訊息顯示出" >= 錯誤. ",原本在WebClientQuery 裡是設定 "出廠日期 >="該如何解決? 在VS中通過左下的標簽切換到"原始碼",將其中的Caption="出廠日期 >=" 替換成Caption="出廠日期 >="(也就是利用  來增加一個空格) 。
開啟報表畫面時,如何預設查詢欄位的Focus問題? 在Form_Load時設定focus,如果查詢的控制項是放在Panel1中的,那麼就要撰寫this.Panel1.Controls["txt0"].Focus();

WebFormView

當前位置:首頁>常見問答>WebForm


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的控制項,更名即可。

WebDateTimePicker

當前位置:首頁>常見問答>WebForm


動態產生(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

當前位置:首頁>常見問答>WebForm


如何在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 的屬性設為唯讀即可。

WebHypeLink

當前位置:首頁>常見問答>WebForm


如何設置WebHyperLink控制項在主視窗打開頁面,而不是新視窗? 將WebHyperLink的UseClientClick屬性設成False,為WebHyperLink增加Click事件,這樣就能在主視窗中打開事件 protected void WebHyperLink_Click(object sender, EventArgs e) { WebHyperLink hlink = sender as WebHyperLink; this.Response.Redirect(hlink.HyperLinkURL+ "?WebHyperLinkText=" + hlink.ColumnText.Replace("'", "\\'") + "&itemparam=" + hlink.ItemParam.Replace("'", "\\'")); }

WebImage

當前位置:首頁>常見問答>WebForm


請問一下WebImage圖檔是ImageField,用在WebFormView的效能如何? 在Web上不要用ImageField,速度很慢,不太適合,建議你還是用Varchar欄位以URL的方式儲存。另外,網頁上很慢的問題,可以將WebDataSource.CacheDataSet設為True會有改善的。

WebMail

當前位置:首頁>常見問答>WebForm


當Client"新增"或"更改"一筆資料時,如何使用WebMail通知某User? WebMail的屬性說明 Attachments 取得附件集合,用於儲存附加到這個電子郵件訊息的資料。 Bcc 取得位元址集合,其中包含這個電子郵件訊息的密件副本 (BCC) 收件者.(用分號隔開)。 Body 取得或設定訊息主體。 CC 取得位元址集合,其中包含這個電子郵件訊息的副本 (CC) 收件者.(用分號隔開)。 Encoding 取得或設定用來對訊息主體和主旨進行編碼的編碼方式。 From 取得或設定這個電子郵件訊息的寄件者地址。 Password 取得或設定與認證相關的使用者名稱的密碼。 Subject 取得或設定這個電子郵件訊息的主旨。 To 取得位元址集合,其中包含這個電子郵件訊息的收件者.(用分號隔開)。 EnableSsl 指定是否使用 Secure Sockets Layer (SSL) 加密連線。 Host 取得或設定用於 SMTP 交易的主機名稱或 IP 位址。 Port 取得或設定用於 SMTP 交易的連接埠。 方法?明 Send(bool SendAsync) 傳送電子郵件訊息給 SMTP 伺服器進行傳遞 SendAsync:是否異步 代碼如下: using Srvtools; WebMail mail = new WebMail(); mail.From = "ccm@infolight.com"; mail.Password = "xxx"; mail.To = "lily@infolight.com"; mail.Subject = "通知"; mail.Body = "這是一封通知郵件"; mail.Host = "infolight.com"; mail.Send(false);

WebMultiLanguage

當前位置:首頁>常見問答>WebForm


MultiLanguage 在 WebClientQuery 上面顯示caption的問題? Page_Load事件需要增加此程式, WebMultiLanguage1.GroupIndex = Srvtools.MultiLanguage.LanguageGroups.ChineseTra; WebMultiLanguage1.SetLanguage(false); 注意:將其放在if(!IsPostBack)之外,WebClientQuery1.Show(Panel1);之前。

WebNavigator

當前位置:首頁>常見問答>WebForm


我想在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這一層。

WebRefVal

當前位置:首頁>常見問答>WebForm


有兩個 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

當前位置:首頁>常見問答>WebForm


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發佈

當前位置:首頁>常見問答>WebForm


為何我在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時,某個目錄不要蓋掉? 建議直接在發佈的目的路徑下創建資料夾,而不是在網站中創建,或者在發佈前將這個路徑先刪除,發佈好以後再恢復。

WebForm其他問題

當前位置:首頁>常見問答>WebForm


新增的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向左隱藏。