Difference b/w command field and template field - c#

What is the difference between command field and template field in grid view and how can I use them in grid view?
I am new in c# so please provide full help so I can feel easy to work with both.
thanks

A CommandField enables to display command buttons to perform selecting, editing, inserting, or deleting operations in a data-bound control.
A TemplateField enables to display custom content in a data-bound control. You could for example nest another GridView inside it or a custom WebUserControl which consists of several other controls.
So in short:
a CommandField autogenerates a button or link for special actions like edit/delete
a TemplateField is extremely customizable, you can put anything there

Template fields are fields where you add controls inside gridview columns.
And command fields are the attribute through which you came to know which control has generated event inside girdview.

In template field you can place any asp.net control, you can customize it.
From MSDN:
Represents a field that displays custom content in a data-bound control.
Command Field:
From MSDN:
Represents a special field that displays command buttons to perform selecting, editing, inserting, or deleting operations in a data-bound control.

Templete Field :- If U Want To do Some More Action in GridView Like Editing , Display Images etc Then U Hav To Use Templete Filed.

Related

different controls in one column gridview, devexpress winform

How add different controls in one column GridView?
I want it to be like this.
Without creating separate gridviews, for other controls.
As far as I see, each row has its own type and the same editor should edit cells in this row. For this scenario, I think it's better to use the Vertical Grid instead of the Grid View.
If you still wish to use the Grid View, use the GridView.CustomRowCellEdit and GridView.CustomRowCellEditForEditing events to assign the required editor to a grid cell.

Get all items from Repeater's datasource when using pagination

I've got a Repeater control, bound to a PagedDataSource, which datasource is a list of custom controls I've made. These custom controls contains a couple of text boxes.
I have a save button, and when it is clicked I want to save the data in all the custom controls to a database, no matter which page they are on - but currently I only got access to the custom controls displayed on the current page.
What I've tried to do is to, in the btnSave_Click event, create a new temporary datasource equal to the current one, except its not a PagedDataSource. That way my repeater contains all custom controls - BUT - the changes made in the textbox fields are no longer available. I then tried to add JavaScript onchange events on the textboxes in the custom control, so that a postback would be fired whenever text was changed, and the property in the user control codebehind would be updated. This didnt work either.
Any ideas?
save the changed values on each page index changing event (or prev /next buttons) into your persistance object (List)
http://www.dotnetfunda.com/articles/show/1611/how-to-select-multiple-records-from-multiple-pages-of-the-gridview-and
The reason your non-PagedDataSource is empty is because the changes in your text box exist in the client and not on the server - you'll need to synchronise the values from your controls with the empty slots in your repeater.
The Repeater does not have built-in Pagination (like the GridView or other complex controls) so it does not offer events such as the PageIndexChanging event. I assume therefore, that you have your own Page navigation implementation. You should therefore call the function you have presented within that implemented function.
Try Using a generic List and Skip and Take methods of that

Gridview button filed dynamically add

I am having one DataGrid..I want to create one button field inside the DataGrid dynamically.
Button filed type is link type.. this button field is fill after checking some conditions in my database..any body help me
Maybe use Jquery to add some controls or you can use httpwriter
httpwriter msdn
The answer for this may require you do a tiny bit of reading/understanding.
Basically you do two things:
1) Add the button design-time and 2) choose its visibility based on database condition.

Dynamically load user control

I have this GridView that have it's DataSource as a list of previously selected products.
For every item on it, I need to Eval it's ID and load a specifc form that the user must fill, then after that i've got to update the GridView.
I have made those specific forms as User Controls, is this the best approach for this scenario?
If yes, how can I dynamically load them, in a way that I can make queries/postbacks then update back my gridview?
What you want to develop is called Master/Detail view.
It is described for example in http://www.asp.net/data-access/tutorials/master-detail-using-a-selectable-master-gridview-with-a-details-detailview-cs .
The only difference that as Detail you need use FormView, where on some initialization event (like DataBound http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.basedataboundcontrol.databound.aspx )you need to dynamically create you control and set its parent to current template of FormView

Should I use a repeater?

I have a table similar to:
ID...NAME.....HTMLTEXT
1....Footer....`<b>test</b>`
where each entry has some HTML text and an associated Name and ID.
What I want to do in ASP.net C# is to list each of these entries on a page in such a way that the HTML text should be displayed exactly how it is meant to be (e.g. <b>test</b> should show 'test' in bold) and each entry should be editable. When the Edit button is clicked on an entry, the HTML text should be replaced by a textbox with the text inside it so that you can edit it and save it.
For example:
FOOTER --EditButton--
TEXT
test
Now I am not sure on what is the best way to do this. Should I use a repeater with an ItemTemplate for each entry? If I use a repeater, and an edit button is clicked, how do I know which edit button is clicked and how do I know which textbox to display the text etc?
You could also use a ListView - I tend to use this because its pretty robust. The data bound controls support the <%# Bind("Field") %> statement. You setup your templates in ItemTemplate or EditItemTemplate, and if you add the proper commands to the buttons in the UI, it all wires up the proper events for you (depending on how you data bind). If you don't use a datasource control, you have to manually tap into the ItemEditing, ItemUpdating, etc. events.
Additionally, if you need to, you can get references to the controls using the current item's FindControl("ID") method.
HTH.
Create a custom control (.ascx) and on this control make the line with the view that you wish, and handle the change/save/delete etc.
Then place this control in the repeater and just give him an id to load and edit.

Categories