[英]Devexpress ASPxGridView GetSelectedFieldValues Can't get values
我正在使用帶有分頁的gridview。 我的網格具有一個命令列,並且ShowSelectCheckbox
設置為true。 我在條件[ if (!IsCallback)
]下將DataTable
綁定到Page_Load
事件的網格。
因此,當我更改頁面索引數據時會丟失。 之后,我將綁定代碼寫入了網格的PageIndexChanged
事件。 現在,它就像魅力一樣工作。
但是,當發生SelectionChanged
事件時, GetSelectedFieldValues
僅在首頁上起作用。
例如,當我在第一頁選擇一行時,它將獲得我想要的字段值。 但是當我更改pageindex時, GetSelectedField
無法獲取字段值。 它警告空文本。
如果我在第二個頁面索引處選擇一行,它也可以在該頁面上工作,但是當我更改頁面索引時,它又被破壞了。
順便說一句,當我在沒有!IsCallback
條件的情況下在PageLoad
事件中綁定網格時,它起作用了,但由於其他控件必須更改查詢等數據,因此我無法在Page_Load
事件!IsCallback
其綁定。
這是我的JavaScript函數,可提醒選定的值
<ClientSideEvents SelectionChanged="function(s, e) {
grid.GetSelectedFieldValues('SDNO;SANTRAL',alert);
}" />
和頁面索引更改事件
protected void myGrid_PageIndexChanged(object sender, EventArgs e)
{
myGridDataSource = dtable; //dtable is static, i also used BindThat function here too. But no way out.
myGridDataBind();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsCallback)
{
BindThat(); // Fetch data from db, create dtable and bind it to grid.
}
}
我認為這不是從客戶端的網格獲取值的正確方法,請檢查以下鏈接: http : //www.devexpress.com/Support/Center/p/Q94237.aspx
[JScript]
function Button1_onclick() {
ASPxGridView1.GetSelectedFieldValues("CategoryID;CategoryName", OnGetSelectedFieldValues);
}
function OnGetSelectedFieldValues(result) {
for(var i = 0; i < result.length; i ++)
for(var j = 0; j <result[i].length; j++) {
alert(result[i][j]);
}
}
問題:您的網格支持多種選擇嗎?
Edit1 :同樣檢查以下示例:
ASPxClientGridView.GetSelectedFieldValues方法發送回調以獲取指定的數據。 因此,如果您未在此回調的服務器端綁定ASPxGridView(並且由於條件[if(!IsCallback)]而實際上並未綁定),則網格將無法返回數據。
順便說一句,這在當前頁面上有效,因為ASPxGridView正在緩存當前頁面的數據(請參閱EnableRowsCache屬性定義)。
您可能想要嘗試關閉網格的回調。 我發現這解決了我在網格中遇到的一些問題。 我不確定這是否可行,但是值得一試。
<dxwgv:ASPxGridView ID="xgvMyGrid" runat="server" AutoGenerateColumns="False"
EnableCallBacks="False">
注意...盡管網格仍然可以正常工作,但這可能會影響您可能已經在使用的其他代碼。
另外,請檢查Grid的KeyFieldName。 如果未指定此信息或該信息不正確,則您可能也將無法在GetSelectedFieldValues客戶端事件中檢索值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.