- PR -

DataGri dでPagingを利用した際 のパラメータ取得方法について

1
投稿者投稿内容
イルカ
会議室デビュー日: 2003/09/04
投稿数: 6
投稿日時: 2003-09-04 14:24
はじめまして。イルカと申します。
DataGridのページング利用について質問させて下さい。

DataGrid内に、
ItemTempleteでボタンを利用し値を表示しています。
DataGridのページング機能を利用して次ページに移動した際に、
画面に表示した値を取得しようとすると常に1ページめで表示した
値しか取得できません。
以下のようにしてcommandArgumentの値を取得しようとしていますが、
次ページでも値を取得できる方法ご存知でないでしょうか?


==ユーザコントロール==
<asp:DataGrid id=xxx autogeneratecolumns=false
  allowpaging=true
  onPageIndexChanged=OnPageIndexChanged
   pageSize=2 runat=server>
<columns>
<asp:TemplateColumn itemstyle-borderwidth=0>
<ItemTemplate>
<asp:button 
text=<%# DataBinder.Eval(Container.DataItem,"CorpName") %>
commandArgument=<%# DataBinder.Eval
(Container.DataItem,"CorpId") %>
onclick=OnUpdate runat=server/>
</ItemTemplate>
</asp:TemplateColumn>
</columns>

==コントロール==
public OnUpdate(object sender,EventArgs e){
if((sender is Button)){
string id = int.Parse(button.CommandArgument);
}
}


_________________
Valhalla
ベテラン
会議室デビュー日: 2002/09/03
投稿数: 53
投稿日時: 2003-09-17 03:46
commandArgumentを使用する場合は、

>onclick=OnUpdate

ではなくて、OnCommand=OnUpdate として

>public OnUpdate(object sender,EventArgs e){
>if((sender is Button)){
>string id = int.Parse(button.CommandArgument);

は、

public OnUpdate(object sender,CommandEventArgs e){
if((sender is Button)){
string id = int.Parse(e.CommandArgument);

ですね。
イルカ
会議室デビュー日: 2003/09/04
投稿数: 6
投稿日時: 2003-09-17 10:12
Valhallaさんご返答ありがとうございます。
ページングがうまくいかない理由が分かりました。
原因はViewStateをoffにしていたからでした。
それとは別にDataGridからパラメータ値を取得する方法を以下の方法に変えることで
シンプルなソースとなりました。ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)