Asp.net RadGrid ItemDataBound事件导致忽略另一个事件

Asp.net RadGrid ItemDataBound事件导致忽略另一个事件,asp.net,event-handling,telerik,radgrid,Asp.net,Event Handling,Telerik,Radgrid,我有一个用户控件,其中包含一个RadGrid和一个RadToolBar控件(如下) RadToolBar按钮单击事件初始化回发以保存页面内容(页面包含其他控件,如下拉列表、文本框等,但与我遇到的问题无关)。在上面的代码中,一切都按预期工作(RadToolBar按钮单击EventHandler获得调用,页面上的内容被保存) 当我为RadGrid的ItemDataBound事件添加一个事件处理程序(见下文)时,就会出现问题 受保护的void RadGrid1_ItemDataBound(对象发

我有一个用户控件,其中包含一个RadGrid和一个RadToolBar控件(如下)


RadToolBar按钮单击事件初始化回发以保存页面内容(页面包含其他控件,如下拉列表、文本框等,但与我遇到的问题无关)。在上面的代码中,一切都按预期工作(RadToolBar按钮单击EventHandler获得调用,页面上的内容被保存)

当我为RadGrid的ItemDataBound事件添加一个事件处理程序(见下文)时,就会出现问题


受保护的void RadGrid1_ItemDataBound(对象发送方,GridItemEventArgs e)
{ 
if(e.Item为GridDataItem)
{ 
GridDataItem=e.项作为GridDataItem;
(dataItem[“DataGoTo”].FindControl(“ButtonGoTo”)作为按钮)
.PostBackUrl=String.Format(
“~/ShowData.aspx?id={0}”,
数据项[“DataTopicID”]。文本);
} 
}
我使用这个处理程序设置按钮控件的PostBackUrl(我在这个事件上这样做是因为我需要RadGrid行内容的ID)。问题是不再调用RadToolBar ButtonClick事件处理程序

一切正常后,事件顺序为:加载->需要数据源->按钮单击。添加ItemDataBound事件后,序列为Load->NeedDataSource->ItemDataBound(按钮单击事件被“忽略”)

为什么在RadGrid中添加ItemDataBound事件会影响RadToolBar中的ButtonClick事件?如何在维护ItemDataBound事件的同时使ButtonClick事件“不被忽略”

谢谢

  • 没有
    onClick=“yourHandlerName”
    按钮单击事件会被触发

  • 您可以使用telerik
    GridButtonColumn
    column并设置
    CommandName=“DoDomething”
    ,然后在网格的
    OnItemCommand=“Grid1\u itemcond
    eventhandler中启动它


  • 尝试通过Try/catch-block包围RadGrid1_ItemDataBound。谢谢,但我的问题不是事件处理程序RadGrid1_ItemDataBound。我的问题是RadToolBar按钮单击事件处理程序(未显示)没有被击中。
    <telerik:RadToolBar ID="RadToolBar1" runat="server" Skin="Web20" style="width:100%;" OnButtonClick="RadToolBar1_ButtonClick">
        <Items>
            <telerik:RadToolBarButton ImageUrl="~/[path_omitted]/SaveRadToolBar1.png" Text="Save" ToolTip="Save" />
        </Items>
    </telerik:RadToolBar>
    
    
    <telerik:RadGrid ID="RadGrid1" runat="server" Skin="Vista" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource"> 
        <MasterTableView CommandItemDisplay="None" Height="30" DataKeyNames="ID" ClientDataKeyNames="ID" GroupLoadMode="Client" NoMasterRecordsText="You do not have any data"> 
            <GroupByExpressions> 
                <telerik:GridGroupByExpression> 
                    <GroupByFields> 
                        <telerik:GridGroupByField FieldName="Topic.Category.Name" /> 
                    </GroupByFields> 
                    <SelectFields> 
                        <telerik:GridGroupByField FieldName="Topic.Category.Name" HeaderText="Category" /> 
                    </SelectFields> 
                </telerik:GridGroupByExpression> 
            </GroupByExpressions> 
    
            <Columns> 
                <telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="DataID" Visible="false" />
                <telerik:GridBoundColumn DataField="Topic.ID" UniqueName="DataTopicID" Visible="false" />
                <telerik:GridBoundColumn DataField="Topic.Category.Name" HeaderText="Name" UniqueName="DataCategoryName" Visible="false" /> 
                <telerik:GridBoundColumn DataField="Topic.Name" HeaderText="Topic" UniqueName="DataTopicName" /> 
                <telerik:GridTemplateColumn HeaderText="Go" UniqueName="DataGoTo" HeaderStyle-Width="50"> 
                    <ItemTemplate> 
                        <asp:Button ID="ButtonGoTo" runat="server" ToolTip="Go to data" Text="Go" /> 
                    </ItemTemplate> 
                </telerik:GridTemplateColumn> 
            </Columns> 
        </MasterTableView> 
    </telerik:RadGrid> 
    
    <telerik:RadGrid ID="RadGrid1" runat="server" Skin="Vista" AutoGenerateColumns="false" OnNeedDataSource="RadGrid1_NeedDataSource" OnItemDataBound="RadGrid1_ItemDataBound"> 
        <MasterTableView CommandItemDisplay="None" Height="30" DataKeyNames="ID" ClientDataKeyNames="ID" GroupLoadMode="Client" NoMasterRecordsText="You do not have any data"> 
            <GroupByExpressions> 
                <telerik:GridGroupByExpression> 
                    <GroupByFields> 
                        <telerik:GridGroupByField FieldName="Topic.Category.Name" /> 
                    </GroupByFields> 
                    <SelectFields> 
                        <telerik:GridGroupByField FieldName="Topic.Category.Name" HeaderText="Category" /> 
                    </SelectFields> 
                </telerik:GridGroupByExpression> 
            </GroupByExpressions> 
    
            <Columns> 
                <telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="DataID" Visible="false" />
                <telerik:GridBoundColumn DataField="Topic.ID" UniqueName="DataTopicID" Visible="false" />
                <telerik:GridBoundColumn DataField="Topic.Category.Name" HeaderText="Name" UniqueName="DataCategoryName" Visible="false" /> 
                <telerik:GridBoundColumn DataField="Topic.Name" HeaderText="Topic" UniqueName="DataTopicName" /> 
                <telerik:GridTemplateColumn HeaderText="Go" UniqueName="DataGoTo" HeaderStyle-Width="50"> 
                    <ItemTemplate> 
                        <asp:Button ID="ButtonGoTo" runat="server" ToolTip="Go to data" Text="Go" /> 
                    </ItemTemplate> 
                </telerik:GridTemplateColumn> 
            </Columns> 
        </MasterTableView> 
    </telerik:RadGrid> 
    
    protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
    { 
        if (e.Item is GridDataItem) 
        { 
            GridDataItem dataItem = e.Item as GridDataItem; 
            (dataItem["DataGoTo"].FindControl("ButtonGoTo") as Button) 
                .PostBackUrl = String.Format( 
                    "~/ShowData.aspx?id={0}", 
                    dataItem["DataTopicID"].Text); 
        } 
    }