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