- - PR -
GridViewテンプレートボタン押下時の例外について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-22 00:02
お世話になります。
GridViewコントロールにて、テンプレート列にボタンコントロールを加え、CommandName を Select に設定し、イベントを補足しようとしたところ、 「無効なポストバックまたはコールバック引数です」 という例外が投げられてしまいます。 どうやらクライアント側でイベントの検証でひっかかっているみたいなのですが、RegisterForEventValidationで、生成されたボタン一個一個を登録しても駄目でした。この例外の対処方法がどうしてもわからないので、どなたかご教授お願いします。 以下に主要箇所のソースコードを乗せます。 aspx側 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="GridView1_RowCommand"> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <Columns> <asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="Select" Text="選択" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="テキスト"> <ItemTemplate> <asp:TextBox ID="txt" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"MENUTEXT") %>'></asp:TextBox> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> cs側 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { Label1.Text= e.CommandArgument.ToString(); ClientScript.RegisterClientScriptBlock(typeof(string), "script", GetScript(Convert.ToInt32(Label1.Text))); } private string GetScript(int index) { const string script = "<script type='text/javascript'> \n" + " alert(' Select Index = {0} : Menu Text = {1}'); \n" + "</script> "; TextBox tx = GridView1.Rows[index].FindControl("txt") as TextBox; return String.Format(script, index.ToString(),tx.Text); } | ||||
|
投稿日時: 2006-08-22 02:57
というか提示されたコードでやってみたけど起きませんでした。 とりあえずWeb.Configか@PageディレクティブでEnableEventValidationを無効にしてみては? |
1