- PR -

CollapsiblePanelExtenderのPanel 内のGridViewの更新

1
投稿者投稿内容
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2009-02-21 20:03
お世話になります。

Ajax の CollapsiblePanelExtender で指定した Panel 内の GridView がこうしんされません。

コードは、パネル内にGridView, RadioButton を3つ配置しそれぞれクリックするたびに
SELECT TOP(@NUM)..... の@NUM に与える変数を変えて読んでくる数を指定しています。
RadioButton は、AutoPostBack="True"にしています。

もうひとつ教えてください。
GridView の「選択」などのリンクを押した時にこのCollapsiblePanelExtenderを閉じたいのですが、うまくいきません。
protected void GridView2_SelectedIndexChanging()で
CollapsiblePanelExtender1.Collapsed = true; としてもうまくいきませんでした。
そのコードは、下記です。
コード:

<cc1:CollapsiblePanelExtender ID="CollapsiblePanelExtender1" runat="server" TargetControlID="Panel2" ExpandControlID="Panel1" CollapseControlID="Panel1"
Collapsed="true" TextLabelID="Label2" ImageControlID="Image1" ExpandedImage="~/UpSigen.bmp"
CollapsedImage="~/DownSigen.bmp" SuppressPostBack="false">
</cc1:CollapsiblePanelExtender>




ASP.NET2.0 C# VS2005
コード:

protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
Session["KairanWatchNum"] = 10;
RadioButton1.Checked = true;
RadioButton2.Checked = false;
RadioButton3.Checked = false;

SqlDataSource2.Select(DataSourceSelectArguments.Empty);
}

protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
Session["KairanWatchNum"] = 20;
RadioButton1.Checked = false;
RadioButton2.Checked = true;
RadioButton3.Checked = false;

SqlDataSource2.Select(DataSourceSelectArguments.Empty);
}

protected void RadioButton3_CheckedChanged(object sender, EventArgs e)
{
Session["KairanWatchNum"] = 9999;
RadioButton1.Checked = false;
RadioButton2.Checked = false;
RadioButton3.Checked = true;

SqlDataSource2.Select(DataSourceSelectArguments.Empty);
}

protected void SqlDataSource2_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
e.Command.Parameters["@NUM"].Value = (int)Session["KairanWatchNum"];
}



[ メッセージ編集済み 編集者: SL 編集日時 2009-02-21 20:13 ]
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2009-02-21 23:26
引用:
Ajax の CollapsiblePanelExtender で指定した Panel 内の GridView がこうしんされません。

SqlDataSource2.SelectじゃなくてGridViewをDataBind()してやらないとダメです。

ちなみにセッション変数をパラメータとするのは、Selectingイベントを使わずとも、SessionParameterでできます。

引用:
GridView の「選択」などのリンクを押した時にこのCollapsiblePanelExtenderを閉じたいのですが、うまくいきません。

たとえば、選択ボタンをTemplateFieldにしてOnClientClickにPanel1をクリックするスクリプトを書けばできます。
SL
大ベテラン
会議室デビュー日: 2008/05/02
投稿数: 183
投稿日時: 2009-02-22 09:07
おせわになります。

> SqlDataSource2.SelectじゃなくてGridViewをDataBind()してやらないとダメです。
GridView2.DataBind(); を追加することでうまくいきました。

> OnClientClickにPanel1をクリックするスクリプトを書けばできます。
下記のように追加し、CollapsePanel()を呼び出すようになりましたが、
どうやってCollapsiblePanelExtenderを閉じるようにできますか?
コード:

<script type="text/javascript">
//<![CDATA[
function CollapsePanel() {
CollapsiblePanelExtender1_ClientState.Collapsed = true;
}
//]]>
</script>

<asp:GridView ID="GridView2"
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Select" Text="選択" Width="50px" OnClientClick="CollapsePanel()">
:
:



ここに、サンプルがあり下記のようにすると閉じ開きができました。ありがとうございました。
http://vanlunch.co.za/(S(digllammz3mrmr45pjx1mx55))/Default.aspx?Page=CollapsiblePanelExtender&Code=1&AspxAutoDetectCookieSupport=1
コード:

function CollapsePanel() {
var collPanel = $find("CollapsiblePanelExtender1");
if (collPanel.get_Collapsed())
collPanel.set_Collapsed(false);
else
collPanel.set_Collapsed(true);
}



[ メッセージ編集済み 編集者: SL 編集日時 2009-02-22 09:22 ]
1

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