if (e.Item is GridDataItem)
{
foreach (DataRow row in Headers.Rows)
{
String columnName = row[0].ToString();
String groupColumnHeader = row[1].ToString();
String columnHeader = row[2].ToString();
String attributeType = row[3].ToString();
String targetValue = row[4].ToString();
GridDataItem gridRow = (GridDataItem)e.Item;
String ReportID = gridRow.GetDataKeyValue("report_id").ToString();
if (ReportID.Equals(today) && attributeType.Equals("ManualEntry")) // report_id is a string in the format "yyyyMMdd"
{
gridRow[columnName].BorderColor = System.Drawing.Color.Green;
gridRow[columnName].BorderWidth = new Unit("1px");
columnValue = ((DataRowView)gridRow.DataItem)[columnName].ToString();
Label1.Text += "GridDataItem::columnName=" + columnName + "::columnValue=" + columnValue + " <
br
>";
}
else if (attributeType.Equals("ManualEntry"))
{
gridRow[columnName].BackColor = System.Drawing.Color.LightGray;
//gridRow[columnName].ReadOnly = false;
}
}
}
I am binding radgrid in client-side with AllowPagging="true" and page-size=5. My requirement is to hide the paging panel if there are 5 or less than 5 records (or you can say if there is only one page).
For this i have tried PagerStyle-AlwaysVisible="true". It works well if there are 5 or less than 5 records. But if the number of records are 8 then i will display 2 page. First page displays 5 records and the second page display 3 records.
Now, the problem is on second page it hides the paging panel because the number of records are less than 5.
<
telerik:RadGrid
ID
=
"PublisherGrid"
runat
=
"server"
AllowSorting
=
"true"
AllowPaging
=
"true"
AllowMultiRowSelection
=
"true"
AutoGenerateColumns
=
"false"
>
<
MasterTableView
ShowFooter
=
"false"
ItemStyle-Height
=
"30px"
AlternatingItemStyle-Height
=
"30px"
>
<
Columns
>
<
telerik:GridClientSelectColumn
UniqueName
=
"Select"
ItemStyle-Width
=
"30px"
HeaderStyle-Width
=
"30px"
></
telerik:GridClientSelectColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Id"
ItemStyle-Width
=
"30px"
HeaderStyle-Width
=
"30px"
DataField
=
"Id"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Name"
DataField
=
"Name"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"FileNamePrefix"
ItemStyle-Width
=
"120px"
HeaderStyle-Width
=
"120px"
DataField
=
"FileNamePrefix"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Delimeter"
ItemStyle-Width
=
"70px"
HeaderStyle-Width
=
"70px"
DataField
=
"Delimeter"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
ItemStyle-HorizontalAlign
=
"Center"
/>
<
telerik:GridBoundColumn
HeaderText
=
"OutputLocation"
DataField
=
"OutputLocation"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"TimeStamp"
ItemStyle-Width
=
"120px"
HeaderStyle-Width
=
"120px"
DataField
=
"TimeStamp"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
/>
<
telerik:GridBoundColumn
HeaderText
=
"Status"
ItemStyle-Width
=
"70px"
HeaderStyle-Width
=
"70px"
DataField
=
"Status"
HeaderStyle-Wrap
=
"false"
ItemStyle-Wrap
=
"false"
ItemStyle-HorizontalAlign
=
"Center"
/>
</
Columns
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
Position
=
"Bottom"
AlwaysVisible
=
"true"
></
PagerStyle
>
</
MasterTableView
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
>
<
Selecting
AllowRowSelect
=
"true"
/>
<
Resizing
AllowColumnResize
=
"true"
/>
<
DataBinding
SelectMethod
=
"GetPublisherQueue"
Location
=
"http://localhost/Oyster.WCF/publisher.svc"
>
</
DataBinding
>
<
ClientEvents
OnDataBinding
=
"RadGrid1_DataBinding"
OnDataBindingFailed
=
"function () {alert('binding failed');}"
/>
</
ClientSettings
>
<
SelectedItemStyle
CssClass
=
"SelectedItem"
/>
</
telerik:RadGrid
>
[ServiceContract]
public
interface
IPublisher
{
[OperationContract(Name =
"GetPublisherQueue"
)]
[WebInvoke(Method=
"POST"
, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
PublisherQueueData GetPublisherQueue(
int
startRowIndex,
int
maximumRows);
}
[DataContract]
public
class
PublisherQueue
{
[DataMember]
public
int
Id {
get
;
set
; }
[DataMember]
public
String Name {
get
;
set
; }
[DataMember]
public
String FileNamePrefix {
get
;
set
; }
[DataMember]
public
String Delimeter {
get
;
set
; }
[DataMember]
public
String OutputLocation {
get
;
set
; }
[DataMember]
public
String TimeStamp {
get
;
set
; }
[DataMember]
public
String Status {
get
;
set
; }
}
public
class
PublisherQueueData
{
public
int
Count
{
get
;
set
;
}
public
List<PublisherQueue> Data
{
get
;
set
;
}
}
/////
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[KnownType(
typeof
(PublisherQueue))]
public
class
Publisher : IPublisher
{
List<PublisherQueue> publisherQueueList =
new
List<PublisherQueue>();
PublisherQueueData publisherQueueData =
new
PublisherQueueData();
public
PublisherQueueData GetPublisherQueue(
int
startRowIndex,
int
maximumRows)
{
PopulatePublisherQueue();
publisherQueueData.Data = publisherQueueList;
publisherQueueData.Count = publisherQueueList.Count;
return
publisherQueueData;
}
private
void
PopulatePublisherQueue()
{
Morningstar.Indexes.ETL.PublisherDataAccess publisherDataAccess =
new
PublisherDataAccess();
using
(DataTable publisherQueueDataTable = publisherDataAccess.GetPublisherData())
{
for
(
int
i = 0; i < publisherQueueDataTable.Rows.Count - 1; i++)
{
PublisherQueue publisherQueueRecord =
new
PublisherQueue();
publisherQueueRecord.Id = Convert.ToInt32(publisherQueueDataTable.Rows[i][
"PUBLISHER_ID"
]);
publisherQueueRecord.Name = publisherQueueDataTable.Rows[i][
"PUBLISHER_NAME"
].ToString();
publisherQueueRecord.FileNamePrefix = publisherQueueDataTable.Rows[i][
"FILE_NAME"
].ToString();
publisherQueueRecord.OutputLocation = publisherQueueDataTable.Rows[i][
"OUTPUT_LOCATION"
].ToString();
publisherQueueRecord.Delimeter = publisherQueueDataTable.Rows[i][
"DELIMETER"
].ToString();
publisherQueueRecord.TimeStamp = publisherQueueDataTable.Rows[i][
"PUBLISH_TIMESTAMP"
].ToString();
publisherQueueRecord.Status = publisherQueueDataTable.Rows[i][
"STATUS"
].ToString();
publisherQueueList.Add(publisherQueueRecord);
}
}
}
}
public class OCToolTip : CompositeControl
{
private RadToolTip tip;
private Image image;
[Localizable(false)]
protected override void CreateChildControls()
{
this.Controls.Clear();
tip = new RadToolTip();
image = new Image();
image.CssClass = "helpImage";
this.Controls.Add(image);
this.Controls.Add(tip);
tip.TargetControlID = image.ID;
tip.IsClientID = true;
tip.ShowEvent = ToolTipShowEvent.OnClick;
tip.OnClientBeforeShow = "ShowToolTip";
}
protected override void Render(HtmlTextWriter writer)
{
AddAttributesToRender(writer);
tip.RenderControl(writer);
}
}
protected
void CfnReportGrid_PreRender(object sender, EventArgs e)
{
RadGrid CFNGrid = (RadGrid)CfnReport.FindItemByValue("CfnDataRpt").FindControl("CfnReportGrid");
GridHeaderItem headerItem = (GridHeaderItem)CFNGrid.MasterTableView.GetItems(GridItemType.Header)[0];
Image img = new Image();
img.ID =
"PRImg";
img.ImageUrl =
"~/Image/Header_Info.jpg";
img.ImageAlign =
ImageAlign.Bottom;
img.ToolTip =
"Employee FileNo";
img.Width =
new Unit(10);
img.Height =
new Unit(9);
headerItem[
"EIS_ID"].Controls.AddAt(1, img);
protected
void CfnReportGrid_ItemCreated(object sender, GridItemEventArgs e)
if(IsExport)
RadGrid
CFNGrid = (RadGrid)CfnReport.FindItemByValue("CfnDataRpt").FindControl("CfnReportGrid");
GridHeaderItem headerItem = (GridHeaderItem)CFNGrid.MasterTableView.GetItems(GridItemType.Header)[0];
Image img = (Image)headerItem.FindControl("PRImg");
img.Visible =
false;
But gettin runtime error:
Object reference not set to an instance of an object.
Please help me to resolve this issue.
Thanks so much
I am very new to asp.net and telerik so I apologize. I need help and I am not sure how to get this accomplished. Here is what I got. I have two radgrids one is being controlled by the other. the first grid will display a list of patients a therapist has on their case load. the second grid will display a list of visits each patient has. so the visits grid is be controlled by the selected value of the patient grid by PaitentID. Ok here is my problem when I add a visit for a patient I don't know how to automatically populate the patientID for the visit from the selected value on the patient grid. So I am not sure how to go about this so any help would be greatly appreciated. thanks