|
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(); }
|
|
|
|
Ajax Timer會讓TextBox失去Focused,如何解決? |
觀看回應
|
|
Ajax Timer會讓UpdatePanel中的TextBox失去Focused這個是正常的現象, 因為每隔一段時間, UpdatePanel就會依Timer去更新一次,就會讓TextBox失去Focused.解決這個問題的方法如下:1.給所有UpdatePanel中的TextBox添加attribute:onfocus="txtFocus()" 例如 2.在頁面的標籤下方添加如下javascript函數:這裏由於用到了cookies來記錄post之前游標停留在哪個TextBox之中,所以IE流覽器必須支持cookies 3.給UpdatePanel添加OnInit事件:protected void UpdatePanel1_Init(object sender, EventArgs e){if (this.Request.Cookies["focusTextBox"] != null){string s = this.Request.Cookies["focusTextBox"].Value;//讀出post之前游標停留在哪個TextBox之中 string script = "var inp = $get('" + s + "');" + "window.setTimeout('var r = inp. createTextRange(); r.collapse(false); r.select();', 10);"; ScriptManager.RegisterStartupScript(this.UpdatePanel1,this.Page.GetType(), "ScriptBlock", script, true);}} 4.以上只是普遍的解決方案,如有特殊要求可適當修改代碼。主要的思路是在timer觸發tick之前,找到合適的時機用javascript將post之前最後停留的TextBox記錄到cookies中,然後在post之後UpdatePanel的OnInit事件中再將滑鼠的游標重新放置於此TextBox中. />
|
|
|