1

グリッドアイテムコマンドのイベントが実行されていないため、ここで問題を推測することはできません.pageeventの検証状態も変更しますが、役に立たない. .aspx コードを貼り付けています。グリッドは完全にバインドされています

<telerik:RadGrid ID="frds" runat="server" OnItemCommand="go_frd" AutoGenerateColumns="false" >
<MasterTableView>
<Columns>
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:Button ID="bt" runat="server" CommandArgument='<%#Eval("frd_ID") %>' Text="test" />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>

イベントはこれ

   protected void go_frd(object o, GridCommandEventArgs e)
{
    if (e.CommandName == "frd_go")
    {
        Response.Redirect("Profiling.aspx?uid=" + e.CommandArgument);
    }
    if (e.CommandName == "add_frd")
    {
        db_accessDataContext db = new db_accessDataContext();
        Frd_request req = new Frd_request();

        db.AddFriend(Int64.Parse(cur_mem_id), Int64.Parse(e.CommandArgument.ToString()));
        SqlConnection con = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand("dbo.addFriend", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add(@"memID", Int64.Parse(cur_mem_id));
        cmd.Parameters.Add(@"frdID", Int64.Parse(e.CommandArgument.ToString()));
        try
        {
            con.Open();
            cmd.ExecuteNonQuery();
        }
        catch (Exception ex) { }
    }
}

私は多くのアプローチを試みましたが、グリッドのボタンのイベントを発生させることができませんでしたブレークポイントを配置して確認しましたが、問題はイベントバインディングコードの実行を開始しないことです

    string query = "my query containing the frd_id ,works fine in query builder and it also is shown grid view "; 
try { SqlConnection con = new SqlConnection(connectionString);
 SqlDataAdapter adapter = new SqlDataAdapter(query, con); 
adapter.Fill(d0); con.Close(); 
} catch (Exception ex) { } 
frds.DataSource = d0; 
frds.DataBind();
4

3 に答える 3

1

CommandName を設定する必要があります。

<asp:Button ID="bt" runat="server" 
     CommandName="frd_go" 
     CommandArgument='<%#Eval("frd_ID") %>' Text="test" />
于 2012-06-19T09:49:02.307 に答える
1

今日も同様の問題がありました。私の radgrid には、sql を構築し、page_load イベントで radgrid を設定するコードがありましたが、追加するのを忘れていました

if (!IsPostBack) { }

このコードの周りで、ページが読み込まれるたびにグリッドが再構築され、onitemcommand メソッドが機能していませんでした。ページはボタンのクリックまたは行のクリックでポストバックしているように見えましたが、イベントは発生していませんでした。データバインディングの周りに if (!isPostback) コードを追加してみてください。うまくいくかもしれません。

于 2014-12-15T14:09:59.960 に答える
0

EnablePostBackOnRowClickプロパティをtrueforに設定する必要がありますClientSettings。ただし、これにより完全なポストバックが発生します。

.
.
.
</MasterTableView>
<ClientSettings EnablePostBackOnRowClick="true"> 
</ClientSettings>
</telerik:RadGrid>

Telerik フォーラムでこのスレッドを確認することをお勧めします。

于 2012-06-19T11:30:25.497 に答える