This question is locked. New answers and comments are not allowed.
My grid shows a PersonViewModel POCO and is set up like this:
...
I use popup editing with ajax binding and this is working fine. However, the PersonViewModel actually has many more columns; I'd like to only show those 4 in the grid itself (to avoid horizontal scrolling) and have all the fields on the popup editor. The editor only pulls in the values for the fields which are explicitly declared with columns.Bound().
1. How can I get values for all columns?
If this is not possible, I'd like to try this as an alternative -
Using in-line editing, I let the columns autogenerate but they are all constrained within the width of the grid and end up ~10px wide.
2. How can I force the grid to horizontally scroll without having to manually specify all the columns and their widths?
...
.Columns(columns =>
{
columns.Bound(c => c.FirstName).Width(120);
columns.Bound(c => c.LastName).Width(120);
columns.Bound(c => c.Address1).Width(130);
columns.Bound(c => c.BirthDate);
columns.Command(commands =>
{
commands.Edit().ButtonType(GridButtonType.Text);
commands.Delete().ButtonType(GridButtonType.Text);
}).Width(180).Title("Commands");
})
...I use popup editing with ajax binding and this is working fine. However, the PersonViewModel actually has many more columns; I'd like to only show those 4 in the grid itself (to avoid horizontal scrolling) and have all the fields on the popup editor. The editor only pulls in the values for the fields which are explicitly declared with columns.Bound().
1. How can I get values for all columns?
If this is not possible, I'd like to try this as an alternative -
Using in-line editing, I let the columns autogenerate but they are all constrained within the width of the grid and end up ~10px wide.
2. How can I force the grid to horizontally scroll without having to manually specify all the columns and their widths?
11 Answers, 1 is accepted
0
Accepted
Jigar
Top achievements
Rank 1
answered on 28 Sep 2010, 07:22 PM
Hi Alex,
While Grid opens up Edit popup window it uses EditorForModel so I think it should display all the fields of your model according to the attribute you set.
Now to achieve your goal, you can put those fields (which you dont want to display in grid) as hidden.
For Example
columns.Bound(c => c.xyz).Hidden(True);
So, xyz won't be displayed in grid but that field be there in Edit form. I hope this helps.
Regards,
Jigar.
While Grid opens up Edit popup window it uses EditorForModel so I think it should display all the fields of your model according to the attribute you set.
Now to achieve your goal, you can put those fields (which you dont want to display in grid) as hidden.
For Example
columns.Bound(c => c.xyz).Hidden(True);
So, xyz won't be displayed in grid but that field be there in Edit form. I hope this helps.
Regards,
Jigar.
0
Alex
Top achievements
Rank 1
answered on 28 Sep 2010, 08:14 PM
This was perfect thank you.
0
Kyle Pike
Top achievements
Rank 1
answered on 08 Nov 2010, 10:38 PM
i have the exact opposite question. How do i display a column in normal mode, and NOT display it in edit mode or Insert Mode?
To be more specific, i have the following grid
and i do not want the user to be able to edit the CreateDate and CreatedBy fields. I am using the following model
Is there a data annotation i can use to make this work? Or a simple column property?
this is a pretty common request for us here, and I'd like to not have to make a custom editor template / new type for each.
To be more specific, i have the following grid
<%
var caseID = ViewData[
"CaseID"
];
Html.Telerik().Grid<ServiceCoordinator.Models.EditableComments>()
.Name(
"CommentsGrid"
)
.ToolBar(commands => commands.Insert().ButtonType(GridButtonType.Image))
.BindTo((IEnumerable<ServiceCoordinator.Models.EditableComments>)Model)
.DataBinding(dataBinding => dataBinding
.Ajax()
.Select(
"EditingServerSide"
,
"Comments"
,
new
{ id = caseID })
.Insert(
"GridInsert"
,
"Comments"
)
.Update(
"GridSave"
,
"Comments"
))
.Columns(columns =>
{
columns.Bound(o => o.CommentType).Width(140);
columns.Bound(o => o.CommentText);
columns.Bound(o => o.CreateDate).Format(
"{0:d}"
).Width(80).Title(
"Date"
);
columns.Bound(o => o.CreatedBy).Width(80).Title(
"User"
);
columns.Command(commands => commands.Edit().ButtonType(GridButtonType.Image)).Width(200);
})
.Pageable()
.Sortable()
.Filterable()
.DataKeys(keys => keys.Add(c => c.UID))
.Render();
%>
and i do not want the user to be able to edit the CreateDate and CreatedBy fields. I am using the following model
public
class
EditableComments
{
public
int
UID {
get
;
set
;}
public
int
CaseID {
get
;
set
;}
[UIHint(
"CommentType"
), Required]
public
CommentType CommentType {
get
;
set
; }
public
string
CommentText {
get
;
set
;}
public
string
CreatedBy {
get
;
set
; }
public
System.Nullable<System.DateTime> CreateDate
{
get
;
set
;
}
}
public
class
CommentType
{
public
int
CommentTypeID {
get
;
set
; }
public
string
Type {
get
;
set
; }
}
Is there a data annotation i can use to make this work? Or a simple column property?
this is a pretty common request for us here, and I'd like to not have to make a custom editor template / new type for each.
0
Makoto
Top achievements
Rank 1
answered on 01 Dec 2010, 09:21 PM
Kyle,
Have you tried .ReadOnly()?
In your case:
Have you tried .ReadOnly()?
In your case:
.Columns(columns =>
{
columns.Bound(o => o.CommentType).Width(140);
columns.Bound(o => o.CommentText);
columns.Bound(o => o.CreateDate).Format(
"{0:d}"
).Width(80).Title(
"Date"
).ReadOnly();
columns.Bound(o => o.CreatedBy).Width(80).Title(
"User"
).ReadOnly();
columns.Command(commands => commands.Edit().ButtonType(GridButtonType.Image)).Width(200);
})
0
Carson
Top achievements
Rank 1
answered on 02 Dec 2010, 05:36 PM
I'm under the impression that .ReadOnly doesn't hide a column, but instead displays the DisplayTemplate for that column when in Edit Mode.
Is that right?
Anyway, I want to hide a columns.Template column in Edit mode. .ReadOnly is not an option for a template column.
Any other suggestions?
Thanks
Is that right?
Anyway, I want to hide a columns.Template column in Edit mode. .ReadOnly is not an option for a template column.
Any other suggestions?
Thanks
0
Makoto
Top achievements
Rank 1
answered on 08 Dec 2010, 11:04 PM
If you're not editing in inline mode (that is, using Popup or Form), then you'll need to decorate your properties on your model class with the ScaffoldColumn attribute to prevent them from showing up in the editor.
For example:
For example:
[ScaffoldColumn(
false
)]
public
DateTime CreatedDate {
get
;
set
; }
0
Steve
Top achievements
Rank 1
answered on 17 Dec 2010, 08:30 PM
Hi,
I have Q3 2010 version and I had the same problem. I used the ScaffoldColumn, but when I do so, my column is not shown in grid. My grid show a column who is the result of a calculation. I want to show this column in my grid view, but not in popup edit mode.
Thank you for your help
Steve
I have Q3 2010 version and I had the same problem. I used the ScaffoldColumn, but when I do so, my column is not shown in grid. My grid show a column who is the result of a calculation. I want to show this column in my grid view, but not in popup edit mode.
Thank you for your help
Steve
0
Lyle
Top achievements
Rank 1
answered on 20 Dec 2010, 05:37 PM
Try
in your UserControl.
~Lyle
<%= Html.TextBox("HiddenField", Model.HiddenField, new { style = "visibility:hidden" })%>
in your UserControl.
~Lyle
0
Steve
Top achievements
Rank 1
answered on 21 Dec 2010, 04:14 PM
Thank you for your reply. I tried another solution who works fine using DataAnnotationsModelMetadataProvider.
Here is the link:
http://stackoverflow.com/questions/2959041/showing-different-fields-in-editorformodel-vs-displayformodel-modes-in-mvc2
Thank you
Steve
Here is the link:
http://stackoverflow.com/questions/2959041/showing-different-fields-in-editorformodel-vs-displayformodel-modes-in-mvc2
Thank you
Steve
0
Makoto
Top achievements
Rank 1
answered on 21 Dec 2010, 05:06 PM
If your goal is to show a drop down list in edit mode that's tied to the Id column, you might want to check out this sample project that I put together that uses a very easy way to accomplish that.
http://www.telerik.com/ClientsFiles/236914_gridwidths.zip
http://www.telerik.com/ClientsFiles/236914_gridwidths.zip
0
Steve
Top achievements
Rank 1
answered on 21 Dec 2010, 05:47 PM
Thank you for the information.
My goal was to show a readonly column in grid and to hide this column when I'm going in popup edit.
Thank you
My goal was to show a readonly column in grid and to hide this column when I'm going in popup edit.
Thank you