2012-06-19 37 views
1

由于网格项目命令的事件未执行,因此我无法在此处猜测此问题。我也更改了pageevent验证状态但无用。 我粘贴的.aspx代码以及 网格是完全绑定无法启动onItemCommand事件

<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) { } 
    } 
} 

我试过很多方法,但不能火按钮事件电网 我通过放置一个中断点来检查它,问题在于它甚至没有开始执行事件 绑定COde

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(); 
+0

我通过放置一个断点来检查它,麻烦的是它甚至没有开始执行事件 –

+0

你如何绑定网格? –

+0

字符串查询=“我的查询包含frd_id,在查询生成器中工作正常,它也显示网格视图”; 尝试 SqlConnection con = new SqlConnection(connectionString); SqlDataAdapter adapter = new SqlDataAdapter(query,con); adapter.Fill(d0); con.Close(); } catch(Exception ex){} frds.DataSource = d0; frds.DataBind(); –

回答

1

您需要设置的CommandName:

<asp:Button ID="bt" runat="server" 
    CommandName="frd_go" 
    CommandArgument='<%#Eval("frd_ID") %>' Text="test" /> 
+0

我也试过这个,我通过放置一个断点来检查它,麻烦是它甚至没有开始执行事件 –

0

您需要设置EnablePostBackOnRowClick财产trueClientSettings。但是这会导致完整的回帖。

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

你可能要检查这个thread on Telerik forums

+0

我aso试过但没有用,事件没有解雇 –

+0

你在哪里做数据绑定到radgrid。在radgrid的_NeedDataSource事件下执行(因此您不必担心何时重新绑定网格等)。看一下http:// www.telerik.com/help/aspnet-ajax/grid-advanced-data-binding.html'在这种情况下,确保只设置数据源。没有必要调用DataBind() –

+0

也试过这个 –

1

我今天也有类似的问题。 在我radgrid控件我有代码来构建SQL和填充在Page_Load事件的radgrid控件,但我忘了补充

如果(!的IsPostBack){}

解决此代码,所以在每一页上的负载网格正在重建,并且onitemcommand方法不起作用。该页面似乎是在按钮单击或rowclick上重新发布,但该事件只是没有解雇。尝试在数据绑定中添加if(!isPostback)代码,您可能会发现它适用于您。

相关问题