【问题标题】:How to search data from a telerik RadGrid?如何从 Telerik RadGrid 中搜索数据?
【发布时间】:2016-06-28 15:30:06
【问题描述】:

我是 C# 和 Telerik 的新手。

我有一个带有 MasterTableView 的 radgrid,其中包含一些列。我正在使用存储过程来插入、更新和删除数据。

我想要的是通过我的表搜索 RadGrid 数据。我该怎么做?

<h6>Filtros</h6>
<table class="table table-condensed" style="margin-top: 25px; padding-top: 10px;">
    <tr>
        <td style="width: 80px">Filtro
        </td>
        <td style="width: 30%;">
            <telerik:RadTextBox ID="txtFiltro" runat="server" EmptyMessage="insert name, department or teacher group" Width="90%"></telerik:RadTextBox>
        </td>
        <td>
            <telerik:RadButton ID="lbSearch"
                Visible="true"
                runat="server"
                Text="pesquisar"
                CausesValidation="false"
                Style="background-color: #FFFFFF">
                <Icon PrimaryIconCssClass="icon-search" PrimaryIconLeft="5px" PrimaryIconTop="4px" />
            </telerik:RadButton>
        </td>
    </tr>
</table>   

<telerik:RadGrid ID="lstProfessores" runat="server"  AutoGenerateColumns="False" CellSpacing="0"GridLines="None"OnInsertCommand="lstProfessores_InsertCommand"OnUpdateCommand="lstDocentes_UpdateCommand" >

    <MasterTableView  CommandItemDisplay="Top">
        <Columns>
            <telerik:GridButtonColumn ButtonCssClass="icon-pencil" UniqueName="Edit" CommandName="Edit"> 
                <HeaderStyle Width="30px" />
            </telerik:GridButtonColumn>       

            <telerik:GridButtonColumn ButtonCssClass="icon-trash" UniqueName="Delete" CommandName="Delete" ConfirmDialogType="RadWindow" ConfirmText="Continuar com a remoção?"> 
                <HeaderStyle Width="30px" />
            </telerik:GridButtonColumn>       

            <telerik:GridBoundColumn HeaderText="IdTeacher" DataField="IdTeacher" UniqueName="IdTeacher" DataType="System.Int32" SortExpression="IdTeacher">
                    <ColumnValidationSettings>
                    <ModelErrorMessage Text=""></ModelErrorMessage>
                    </ColumnValidationSettings>
            </telerik:GridBoundColumn>

            <telerik:GridBoundColumn HeaderText="Name" DataField="Name" UniqueName="Name" SortExpression="Name">
                    <ColumnValidationSettings>
                    <ModelErrorMessage Text=""></ModelErrorMessage>
                    </ColumnValidationSettings>
            </telerik:GridBoundColumn>

            <telerik:GridBoundColumn DataField="Department" HeaderText="Departamento" SortExpression="Departamento" UniqueName="Departamento">
                    <ColumnValidationSettings>
                        <ModelErrorMessage Text="" />
                    </ColumnValidationSettings>
            </telerik:GridBoundColumn>

            <telerik:GridBoundColumn DataField="TeacherGroup" HeaderText="TeacherGroup" SortExpression="TeacherGroup" UniqueName="TeacherGroup">
                    <ColumnValidationSettings>
                        <ModelErrorMessage Text="" />
                    </ColumnValidationSettings>
            </telerik:GridBoundColumn>
            <telerik:GridEditCommandColumn />
        </Columns>

    </MasterTableView>
</telerik:RadGrid>

【问题讨论】:

  • 你知道有一个 Telerik 支持网站,上面有例子你至少检查过他们的网站吗..?

标签: c# search telerik telerik-grid radgrid


【解决方案1】:

您如何通过视图/表格模型填充网格?如果是这样,那么您只需要利用数据绑定事件并过滤您的结果。

protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
    var dataSource = myDataSource.Where(s => s.ColumnToSearch == mySearchTextBoxValue);
    RadGrid1.DataSource = dataSource;
}

如果您正在使用存储过程填充网格,那么这将更加困难。

【讨论】:

    【解决方案2】:

    除了 Seano666 建议的方法外,您还可以尝试将 RadGrid 绑定到数据源控件,例如SQLDataSource 控制,如果您的站点连接到 SQL Server 数据库。该控件允许您指定参数,以便您可以将它们传递到您的存储过程中进行数据处理。在您的情况下,根据姓名、部门或教师组进行过滤。

    <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:Your Connection String %>" ProviderName="System.Data.SqlClient" SelectCommand="Your Stored Procedure" SelectCommandType="StoredProcedure" runat="server">
    

    <telerik:RadGrid ID="lstProfessores" runat="server" AutoGenerateColumns="False" CellSpacing="0"GridLines="None" OnInsertCommand="lstProfessores_InsertCommand"OnUpdateCommand="lstDocentes_UpdateCommand" DataSourceId="SqlDataSource1">
    //...
    </telerk:RadGrid>
    

    但理想情况下,通过实现 RadGrid 的OnNeedDataSource 事件,从长远来看,您可以获得更多的控制权和灵活性。

    参考资料:

    http://www.telerik.com/forums/telerik-radgrid-datasource-with-stored-procedure
    http://forums.asp.net/t/1019588.aspx?Passing+parameters+to+Sqldatasource+stored+procedurehttps://msdn.microsoft.com/en-us/library/z72eefad.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 2012-10-03
      • 2012-05-01
      • 1970-01-01
      • 2014-12-27
      • 1970-01-01
      相关资源
      最近更新 更多