私はASP.NET/C#プロジェクトで作業しており、GridViewコントロールを持っています。列の1つは、内部にImageButtonを持つTemplateField/ItemTemplateです。 OnClickイベント中、私はパネルを見えるようにします。通常のImageButtonでこれを行うと、ページがリロードされ、パネルが表示されます。これは、GridView内のImageButtonでは発生しません。私はそれをどうやって作ることができるのか、それともなぜそうなのか誰にも分かりますか?GridView内のImageButtonのOnClickと通常のImageButtonの違い
お時間がありましたら、ご不明な点がありましたらお知らせください。
ここでは、関連するASPの定義は
<asp:TemplateField ItemStyle-Width="90px" ItemStyle-VerticalAlign ="Bottom" ItemStyle-HorizontalAlign ="Center" HeaderText="Add Alias">
<HeaderStyle Font-Bold="True" Font-Size="11px" VerticalAlign="Bottom"/>
<ItemTemplate>
<asp:ImageButton ID ="btnAddAliasHeader" runat="server" ImageUrl="~/img/AddAlias.gif" onclick="btnAddAlias_Click" />
</ItemTemplate>
</asp:TemplateField>
だと、ここでのOnClick関数のC#です。
protected void btnAddAlias_Click(object sender, EventArgs e)
{
ImageButton btnAddAlias = (ImageButton)sender;
GridViewRow row = (GridViewRow)btnAddAlias.Parent.Parent;
int rowIndex = row.RowIndex;
lblSelectedCity.Text = gvResults.Rows[rowIndex].Cells[0].Text;
lblSelectedCountry.Text = ddlCountry.Text;
pnlAddAlias.Visible = true;
}
OnRowCommandイベントを追加してパネルを表示させましたが、それでも表示されません。ポストバックと何か関係があるかもしれないと思います。グリッドビューの外側のボタンをクリックすると、リロード時にグリッドビュー内のボタンからのパネルがうまく表示されるためです。
編集:私はばかだが、これはすべてアップデートパネルで起こっていることを忘れている。
私たちにいくつかのコードを教えてください。 –
GridViewとPanelの両方が同じUpdatePanel内にありますか? – pseudocoder