hi telerik team,
i am unable to do filtering in rad grid.Can you please tell me what i am doing wrong.
<telerik:RadGrid runat="server" ID="filteringRadGrid" OnNeedDataSource="filteringRadGrid_NeedDataSource"
AutoGenerateColumns="false">
<MasterTableView EditMode="InPlace" AllowFilteringByColumn="true">
<Columns>
<telerik:GridTemplateColumn HeaderText="Date" UniqueName="ShippedDate">
<ItemTemplate>
<asp:Label ID="dateLabel" runat="server" Text='<%#Eval("date")%>'></asp:Label>
</ItemTemplate>
<FilterTemplate>
<telerik:RadDatePicker ID="filterRadDatePicker" runat="server" Width="100px" ClientEvents-OnDateSelected="DateSelected" />
<telerik:RadScriptBlock ID="RadScriptBlock2" runat="server">
<script type="text/javascript">
function DateSelected(sender, args) {
var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>");
var date = FormatSelectedDate(sender);
//alert(date);
tableView.filter("date", date, "EqualTo");
}
function FormatSelectedDate(picker) {
var date = picker.get_selectedDate();
var dateInput = picker.get_dateInput();
var formattedDate = dateInput.get_dateFormatInfo().FormatDate(date, dateInput.get_displayDateFormat());
return formattedDate;
}
</script>
</telerik:RadScriptBlock>
</FilterTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Date Time">
<ItemTemplate>
<asp:Label ID="dateTimeLabel" runat="server" Text='<%#Eval("dateTime") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Compliance Status">
<ItemTemplate>
<telerik:RadComboBox ID="compStatusRadComboBox" runat="server">
<Items>
<telerik:RadComboBoxItem Value="0" Text="ao" />
<telerik:RadComboBoxItem Value="1" Text="bo" />
<telerik:RadComboBoxItem Value="2" Text="co" />
</Items>
</telerik:RadComboBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
protected void filteringRadGrid_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("date");
dt.Columns.Add("dateTime");
dt.Columns.Add("cs");
dt.Rows.Add("1/12/2001", "1/12/2001 00:00:03 AM", "ao");
dt.Rows.Add("1/12/2002", "1/12/2002 00:00:06 AM", "co");
dt.Rows.Add("1/12/2003", "1/12/2003 00:00:09 AM", "bo");
filteringRadGrid.DataSource = dt;
}
File ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ManagerWorks.ascx.cs" Inherits="IPC_WORKS.UI.UserControl.ManagerWorks" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<style type="text/css">
.style1
{
height: 122px;
width: 118px;
}
.rgHeader
{}
.style3
{
height: 122px;
width: 249px;
}
.style4
{
width: 98px;
}
.style6
{
width: 111px;
}
.style7
{
width: 118px;
}
</style>
<center>
<table>
<tr>
<td valign = "top"><table width="100%" style="border-style">
<tr>
<td align ="right" class="style7"><asp:Label ID="Label12" runat="server" Text="Tên Công Việc"></asp:Label></td>
<td class="style6"><asp:TextBox ID="txtWF_TittleName" runat="server" Width="330px" ErrorMessage="Nhập tên công việc"></asp:TextBox></td>
</tr>
<tr>
<td align="right" class="style7"><asp:Label ID="Label11" runat="server" Text="Ngày Khởi Tạo"></asp:Label></td>
<td class="style4"><telerik:RadDatePicker ID="RdpCreateDate" runat="server"
Width="150px"></telerik:RadDatePicker></td>
</tr>
<tr>
<td align="right" class="style7"><asp:Label ID="Label7" runat="server" Text="Ngày Bắt Đầu"></asp:Label></td>
<td class="style6"><telerik:RadDatePicker ID="RdpStartDate" runat="server"
Width="150px"></telerik:RadDatePicker></td>
</tr>
<tr>
<td align="right" class="style7"><asp:Label ID="Label8" runat="server" Text="Ngày Kết Thúc"></asp:Label></td>
<td class="style4"><telerik:RadDatePicker ID="RdpEndDate" runat="server" Width="150px">
</telerik:RadDatePicker></td>
</tr>
<tr>
<td align="right" class="style7"><asp:Label ID="Label5" runat="server"
Text="Loại Công Việc" Width="113px"></asp:Label></td>
<td align="left" class="style6">
<telerik:RadComboBox ID="txtRadTypeCode" AllowCustomText="true"
MarkFirstMatch="true" runat="server"
DataTextField="Type_Name" Width="150px"
DataValueField = "Type_Code" EmptyMessage="Loại công việc">
</telerik:RadComboBox>
</td>
</tr>
<tr>
<td align="right" class="style7">
<asp:Label ID="Label4" runat="server" Text="Mức Độ Khó" Width="99px"></asp:Label>
</td>
<td align="left" class="style6">
<telerik:RadComboBox ID="txtRadLevelCode" AllowCustomText="true"
MarkFirstMatch="true" runat="server" DataTextField="Level_Name" DataValueField="Level_Code"
Width="150px" EmptyMessage="Mức độ khó">
</telerik:RadComboBox>
</td>
</tr>
<tr>
<td class="style1" align="right">
<asp:Label ID="Label3" runat="server" Text="Nội Dung Công Việc" ></asp:Label>
</td>
<td class="style3" colspan="3">
<asp:TextBox ID="txtWF_Quote" runat="server" Height="200px"
TextMode="MultiLine" Width="330px"></asp:TextBox>
</td>
</tr>
<tr>
<td colspan="4"></td>
</tr>
<tr>
<td colspan="4" align="center">
<asp:Button ID="btnNew" runat="server" Text = "Tạo Mới" Width="80px" onclick="btnNew_Click" />
<asp:Button ID="btnOK" runat="server" Text="Cập Nhật" onclick="btnOK_Click" Width="80px"/>
<asp:Button ID="btnDel" runat ="server" Text = "Xóa" Width="80px" onclick="btnDel_Click"/>
<asp:Button ID="btnFile" runat ="server" Text ="Tải tài liệu" Width="80px"/>
<asp:Button ID="btnGrantWorks" runat="server" Text="Giao Việc" Width="80px"/>
</td>
</tr>
</table></td>
<td valign="top">
<telerik:RadGrid ID="RadGrid_Works" AllowPaging="True" runat="server" OnItemCommand = "RadGrid_Works_ItemCommand"
OnItemDataBound="RadGrid_Works_ItemDataBound" Width="800px" GridLines="None"
AutoGenerateColumns="False" GroupingEnabled="False" Skin="Outlook"
Height="410px" onpageindexchanged="RadGrid_Works_PageIndexChanged">
<PagerStyle Mode="NextPrev" />
<MasterTableView TableLayout="Fixed" DataKeyNames="WF_Code" EditMode="InPlace" ClientDataKeyNames="WF_Code" PageSize="8" InsertItemPageIndexAction="ShowItemOnLastPage">
<Columns>
<telerik:GridTemplateColumn HeaderText="STT" DataField="WF_Code" HeaderStyle-Width="5%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblStt" runat="server" Text="" ></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="5%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="WF_TitleName" DataField="WF_TitleName" SortExpression="WF_TitleName" HeaderText="Tên Công Việc " HeaderStyle-Width="20%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblWF_TitleName" Height="36px" runat="server" Text='<%# Eval("WF_TitleName") %>'/>
<asp:TextBox ID="txtWF_TitleName" Height="36px" runat="server" Text='<%# Bind("WF_TitleName") %>' Width="20%" Style="display: none"/>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="20%"></HeaderStyle>
<ItemStyle HorizontalAlign="Left" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="WF_Quote" DataField="WF_Quote" SortExpression="WF_Quote" HeaderText="Nội Dung Công Việc" HeaderStyle-Width="25%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblWF_Quote" runat="server" Height="36px" Text='<%# Eval("WF_Quote") %>'/>
<asp:TextBox ID="txtWF_Quote" runat="server" Height="36px" Text='<%# Bind("WF_Quote") %>' Width="20%" Style="display: none" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="20%"></HeaderStyle>
<ItemStyle HorizontalAlign="Left" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Emp_Code" DataField="Emp_Code" SortExpression="Emp_Code" HeaderText="Người Tạo" HeaderStyle-Width="10%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblEmp_Code" Height="36px" runat="server" Text='<%# Eval("Emp_Code") %>'/>
<asp:TextBox ID="txtEmp_Code" Height="36px" runat="server" Text='<%# Bind("Emp_Code") %>' Width="10%" Style="display: none" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="10%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="WF_StartDate" DataField="WF_StartDate" SortExpression="WF_StartDate" HeaderText="Ngày Bắt Đầu " HeaderStyle-Width="15%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblWF_StartDate" runat="server" Text='<%# Eval("WF_StartDate","{0:d}") %>'/>
<asp:TextBox ID="txtWF_StartDate" runat="server" Text='<%# Bind("WF_StartDate","{0:d}") %>' Width="15%" Style="display: none" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="WF_EndDate" DataField="WF_EndDate" SortExpression="WF_EndDate" HeaderText="Ngày Kết Thúc " HeaderStyle-Width="15%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblWF_EndDate" runat="server" Text='<%# Eval("WF_EndDate","{0:d}") %>'/>
<asp:TextBox ID="txtWF_EndDate" runat="server" Text='<%# Bind("WF_EndDate","{0:d}") %>' Width="15%" Style="display: none" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="WF_Status" DataField="WF_Status" SortExpression="WF_Status" HeaderText="Trạng Thái" HeaderStyle-Width="15%" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblWF_Status" runat="server" Text='<%# Eval("WF_Status") %>'/>
<asp:TextBox ID="txtWF_Status" runat="server" Text='<%# Bind("WF_Status") %>' Width="15%" Style="display: none" />
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" Width="15%"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" />
</telerik:GridTemplateColumn>
</Columns>
<PagerStyle NextPageText="Trang sau" PrevPageText="Trang Trước" Mode="NumericPages" />
</MasterTableView>
<ClientSettings EnablePostBackOnRowClick="true" EnableRowHoverStyle="true" KeyboardNavigationSettings-AllowActiveRowCycle="true">
<Selecting AllowRowSelect="True" />
<KeyboardNavigationSettings AllowActiveRowCycle="True"></KeyboardNavigationSettings>
</ClientSettings>
</telerik:RadGrid>
</td>
</tr>
</table>
File .cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.SessionState;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Web.Caching;
using IPC.Bussiness;
using IPC.Utils;
using IPC.DataHelper;
using Telerik.Web.UI;
namespace IPC_WORKS.UI.UserControl
{
public partial class ManagerWorks : System.Web.UI.UserControl
{
#region biến toàn cục
protected string bkey;
public bool iKey = false;
public static int LastId = 0;//lastid
protected decimal WF_Code
{
get { return Convert.ToDecimal(ViewState["WF_Code"]); }
set { ViewState["WF_Code"] = value; }
}
#endregion
#region khởi tạo dữ liệu
protected void Page_Load(object sender, EventArgs e)
{
int startRow = (RadGrid_Works.CurrentPageIndex * RadGrid_Works.PageSize);
LoadGrid("", 0);
if (!Page.IsPostBack){
LoadCombo();
FillFirstData();
try{RadGrid_Works.MasterTableView.Items[startRow].Selected = true;}
catch (Exception){throw new Exception("Khong co so lieu");}
}
}
#endregion
#region xử lý dữ liệu form đăng ký công việc
private void LoadGrid(string sSQLSearch, int iCheck)
{
BindData();
}
private void BindData()
{
DataTable dt = WorkController.Gets();
if (dt != null)
{
RadGrid_Works.DataSource = dt;
RadGrid_Works.DataBind();
RadGrid_Works.AutoGenerateColumns = false;
try{
for (int i = 0; i < RadGrid_Works.PageCount; i++){
if (iKey)
{
RadGrid_Works.Items[RadGrid_Works.Items.Count - 1].Selected = true;
}
}
}
catch { }
}
}
/// <summary>
/// insert if id = 0 or update if id!=0
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOK_Click(object sender, EventArgs e)
{
if (WF_Code == 0)
{
WorkController.InsertObj(GetObjectData());
iKey = true;
}
else
{
WorkController.UpdateObj(GetObjectData());
iKey = false;
}
ClearForm();
WF_Code = 0;
BindData();
}
private void ClearForm()
{
WF_Code = 0;
txtWF_TittleName.Focus();
txtWF_TittleName.Text = "";
txtWF_Quote.Text = "";
txtWF_Quote.Text = "";
RdpCreateDate.SelectedDate = DateTime.Today;
RdpEndDate.SelectedDate = DateTime.Today;
RdpStartDate.SelectedDate = DateTime.Today;
txtRadLevelCode.SelectedIndex = 0;
txtRadTypeCode.SelectedIndex = 0;
}
private void LoadCombo()
{
txtRadTypeCode.DataSource = WF_Type_Controller.Gets();
txtRadTypeCode.DataBind();
txtRadLevelCode.DataSource = LevelController.Gets();
txtRadLevelCode.DataBind();
}
private WF_WorksInfo GetObjectData()
{
WF_WorksInfo objWorks = new WF_WorksInfo();
if(WF_Code != 0)
{
objWorks.WF_Code = WF_Code;
}
else{
objWorks.WF_Code = CommonSQL.GetLatestID("tbl_WF_WORKS","WF_Code")+1;
}
objWorks.WF_TitleName = CommonLib.PreventSQLInjection(txtWF_TittleName.Text.ToString());
if (RdpCreateDate.SelectedDate != null)
objWorks.WF_CreateDate = Convert.ToDateTime(RdpCreateDate.SelectedDate);
else
objWorks.WF_CreateDate = DateTime.Today;
if (RdpStartDate.SelectedDate != null)
objWorks.WF_StartDate = Convert.ToDateTime(RdpStartDate.SelectedDate);
else
objWorks.WF_StartDate = DateTime.Today;
if (RdpEndDate.SelectedDate != null)
objWorks.WF_EndDate = Convert.ToDateTime(RdpEndDate.SelectedDate);
else
objWorks.WF_EndDate = DateTime.Today;
objWorks.WF_Quote = CommonLib.PreventSQLInjection(txtWF_Quote.Text.ToString());
if (txtRadLevelCode.SelectedValue != "")
objWorks.LEVEL_Code = Convert.ToDecimal(txtRadLevelCode.SelectedValue);
if (txtRadTypeCode.SelectedValue != "")
objWorks.TYPE_Code = Convert.ToDecimal(txtRadTypeCode.SelectedValue);
return objWorks;
}
protected void RadGrid_Works_ItemCommand(object source, GridCommandEventArgs e)
{
WF_WorksInfo objWork = new WF_WorksInfo();
if (e.CommandName == "RowClick" && e.Item is GridDataItem){
LastId = e.Item.ItemIndex;//LastId indexItem
e.Item.Selected = true;
WF_Code = Convert.ToDecimal(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["WF_Code"].ToString());
FillObjControl();
}
}
protected void RadGrid_Works_PageIndexChanged(object source, GridPageChangedEventArgs e)
{
RadGrid_Works.CurrentPageIndex = e.NewPageIndex;
RadGrid_Works.DataBind();
}
protected void RadGrid_Works_ItemDataBound(object sender, GridItemEventArgs e)
{
int currentPageIndex = (RadGrid_Works.Items.Count/RadGrid_Works.PageSize);
if(e.Item.ItemType != GridItemType.Header && e.Item.ItemType != GridItemType.Footer)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
string id = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["WF_Code"].ToString();
if (id == WF_Code.ToString())
e.Item.Selected = true;
try
{
for (int i = 0; i < RadGrid_Works.PageCount; i++)
{
if (iKey)
{
RadGrid_Works.Items[RadGrid_Works.Items.Count - 1].Selected = true;
}
else
if (LastId != 0)
{
RadGrid_Works.Items[LastId].Selected = true;
}
}
}
catch { }
for (int i = 0; i <= RadGrid_Works.PageCount; i++)
{
Label lbl = (Label)item.FindControl("lblStt");//accessing Label stt
if (null != lbl)
{
lbl.Text = Convert.ToString(e.Item.ItemIndex+ 1);
}
}
}
}
}
private void FillObjControl()
{
WF_WorksInfo objWork = WorkController.Get(Convert.ToDecimal(WF_Code));
if (objWork != null)
{
txtWF_TittleName.Focus();
txtWF_TittleName.Text = objWork.WF_TitleName;
txtWF_Quote.Text = objWork.WF_Quote;
RdpCreateDate.SelectedDate = objWork.WF_CreateDate;
RdpStartDate.SelectedDate = objWork.WF_StartDate;
RdpEndDate.SelectedDate = objWork.WF_EndDate;
LevelInfo objLevel = LevelController.Get(Convert.ToDecimal(Session["Level_Code"]));
if (objLevel != null)
{
DataTable dtLevel;
txtRadLevelCode.SelectedValue = objWork.LEVEL_Code.ToString();
if (objLevel.Level_Name.ToString() == "")
{
dtLevel = LevelController.Gets();
txtRadLevelCode.DataTextField = "Level_Name";
txtRadLevelCode.DataValueField = "Level_Code";
}
}
WF_Type_Info objType = WF_Type_Controller.Get(Convert.ToDecimal(Session["TYPE_Code"]));
if (objType != null)
{
DataTable dtType;
txtRadTypeCode.SelectedValue = objWork.TYPE_Code.ToString();
if (objType.Type_Name.ToString() == "")
{
dtType = WF_Type_Controller.Gets();
txtRadTypeCode.DataTextField = "Type_Name";
txtRadTypeCode.DataValueField = "Type_Code";
}
}
}
}
protected void btnDel_Click(object sender, EventArgs e)
{
if (WF_Code != 0)
WorkController.DeleteIndex(WF_Code);
BindData();
}
private void FillFirstData()
{
DataTable dt = WorkController.GetTop1();
if (dt != null)
{
WF_Code = decimal.Parse(dt.Rows[0][0].ToString());
if (WF_Code != 0)
FillObjControl();
}
}
protected void btnNew_Click(object sender, EventArgs e)
{
ClearForm();
}
#endregion
}
}
Hi everyone,
I’ve to load a large amount of data in a RadGrid and in order to improve performance I would like to disable the RadGrid ViewState.
My RadGrid just show data and let the user to click in some image buttons to do some actions with the selected row.
When I set the EnableViewState to false, I’ve found the RadGrid1_ItemCommand event doesn’t fire when you click on the Image button but it does when you click on a link button.
<telerik:GridTemplateColumn FilterControlAltText="" UniqueName="TemplateColumn6">
<ItemTemplate>
<!--ImageButton doesn't fire the RadGrid1_ItemCommand event -->
<asp:ImageButton ID="ImageButton1" runat="server" CommandName="Imprimir2" ImageUrl="printer3.png"
CausesValidation="false" />
<!--LinkButton fires the RadGrid1_ItemCommand event-->
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false" CommandName="Imprimir"
Text="Print" CssClass="myCssStyle"></asp:LinkButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
<
script
type
=
"text/javascript"
>
function OnClientClicking(sender, args)
{
var callBackFunction = Function.createDelegate(sender, function (argument)
{
if (argument)
{
this.click();
}
});
var text = "Are you sure you want to archive this application?";
radconfirm(text, callBackFunction, 300, 100, null, "Archive?");
args.set_cancel(true);
}
</
script
>
<
telerik:RadButton
ID
=
"imgArchive"
runat
=
"server"
CommandName
=
"Refs"
OnClientClicking
=
"OnClientClicking"
></
telerik:RadButton
>