This is a migrated thread and some comments may be shown as answers.

Binding data element in client side

4 Answers 101 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Zash
Top achievements
Rank 1
Zash asked on 07 Feb 2011, 09:53 PM

 

<telerik:GridHyperLinkColumn DataNavigateUrlFields="EmployeeId,CertComplete" DataTextField="EmployeeId"

 

 

 

DataTextFormatString="Edit/Update" UniqueName="EmployeeCert" 

 

 

 

DataNavigateUrlFormatString="~/employee/employeesert.aspx?employeeId={0}&isCertComplete={1}"

 

 

 

HeaderText="Certificate" >

 

 

 

<HeaderStyle Width="10%"></HeaderStyle>

 

 

 

<ItemStyle VerticalAlign="Top" HorizontalAlign="Center" />

 

 

 

</telerik:GridHyperLinkColumn>

I want "Edit/update" to be unclickable or hidden when CertComplete is false?
Can i manage to do this from client side
 Can i set visible = '{1}' in the client side

If not how can i manage this for each row in the grid from server side.
Thanks

 

 

4 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 08 Feb 2011, 06:20 AM
Hello,


A better approach is accessing the Edit link from code behind (in ItemDataBound event) and setting the property form code itself. A sample code you can find here:
Radgrid: Allowing only select rows to be editable


Found a documentation regarding the same:
Accessing cells and rows


-Shinu
0
Zash
Top achievements
Rank 1
answered on 08 Feb 2011, 03:55 PM
The grid does not have Edit Column. It contains few hyperlink columns only when page loads and Hyperlink column does not have ID property. I  need to make a link not clickable based on certain data element's property value. In my example it is "CertComplete" . If CertComplete is true then Edit/Update hyperlink can  be clicked .If CertComeplete is false then Edit/Update needs be text only, not clickable.

What event and eventhandler can be used when page loads.
I tried with OnItemDataBound event

protected void Grid1_ItemDataBound(obejct sender, GridItemEventArgs e)
{

 

if (e.Item is GridDataItem)

 

{
// does not fall here

 

GridDataItem dataItem = e.Item as GridDataItem;

 

}

 

else if(e.Item is GridEditFormItem)

 

{

 

GridEditFormItem editItem = e.Item as GridEditFormItem;

 

 

}


}

Also tried with OnItemCreated event

protected void Grid1_ItemCreated(obejct sender, GridItemEventArgs e)
{

 

if (e.Item is GridDataItem)

 

{
// does not fall here

 

GridDataItem dataItem = e.Item as GridDataItem;

 

}

 

else if(e.Item is GridEditFormItem)

 

{

 

GridEditFormItem editItem = e.Item as GridEditFormItem;

 

 

}


}


Thanks
0
Princy
Top achievements
Rank 2
answered on 09 Feb 2011, 12:04 PM
Hello Zash,

Here is the code that I tried in my application. Please take a look at this.
ASPX:
<telerik:RadGrid ID="RadGrid1" AutoGenerateColumns="false" runat="server" DataSourceID="SqlDataSource1"
    OnItemDataBound="RadGrid1_ItemDataBound">
    <MasterTableView>
        <Columns>
            <telerik:GridBoundColumn DataField="isapproved" UniqueName="isapproved">
            </telerik:GridBoundColumn>
            <telerik:GridHyperLinkColumn UniqueName="EditHyperLinkColumn" Text="Edit" NavigateUrl="demo.aspx">
            </telerik:GridHyperLinkColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
   {
       if (e.Item is GridDataItem)
       {
           GridDataItem item = (GridDataItem)e.Item;
           HyperLink link = (HyperLink)item["EditHyperLinkColumn"].Controls[0];
           if (item["isapproved"].Text == "True")
               link.Enabled = false;
       }
   }

Hope this helps,
Princy.
0
Zash
Top achievements
Rank 1
answered on 09 Feb 2011, 03:48 PM
Thanks.  I was able to make it to work. I  accessed the cell  on ItemDataBound Event handler like
 e.Item.cells[7].Enabled=false;

But your one is better.
Tags
Grid
Asked by
Zash
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Zash
Top achievements
Rank 1
Princy
Top achievements
Rank 2
Share this question
or