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

[Solved] template edit form

4 Answers 256 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Ana
Top achievements
Rank 1
Ana asked on 28 Apr 2008, 12:47 PM

Hi!
I have a grid with edit form template. One of the columns has dropdown list in it's edit mode. How can I bind that list when edit bottun pressed?
I have tried following:

void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)

switch ((string)e.CommandName)

{

case "Edit":
e.Item.Edit = true;
Bind();
RadGrid1.EditIndexes.Add(e.Item.ItemIndex); 
DropDownList ddlHZZO = ((System.Web.UI.WebControls.DropDownList)(((System.Web.UI.WebControls.ImageButton)(e.CommandSource)).Parent.FindControl("editHZZO")));//---- ddlHZZO is stil null after this
HandleDropDown(ddlHZZO, Lookup.GetArtikliHZZO(true));
if (!_nalog.Nalog.IsHZZOIDNull())
{
 ddlHZZO.SelectedValue = _nalog.Nalog.HZZOID.ToString();
}
break;
case "Save":
TextBox tbSerijskiBroj = ((System.Web.UI.WebControls.TextBox)(((System.Web.UI.WebControls.ImageButton)(e.CommandSource)).Parent.FindControl("editSerijskiBroj")));

TextBox tbKolicina = ((System.Web.UI.WebControls.TextBox)(((System.Web.UI.WebControls.ImageButton)(e.CommandSource)).Parent.FindControl("editKolicina")));

string serijskiBroj = tbSerijskiBroj.Text;
int kolicina = Convert.ToInt32(tbKolicina.Text);
_nalog.UpdateArtikal(nalogArtiklID, trosak, serijskiBroj, kolicina);
RadGrid1.EditIndexes.Clear();
Bind();
IzracunCijena();
break;

case "Cancel":
RadGrid1.EditIndexes.Clear();
Bind();
break;
default: break;

}

}


<

FormTemplate>

<table>

<tr><td valign="top"><table>

<tr><td>Kolicina: </td>

<td><asp:TextBox Width="15" ID="editKolicina" runat="server" CssClass="textbox" Text='<%# Bind("Kolicina") %>'></asp:TextBox></td></tr>

<tr><td>Ser. br. aparata: </td>

<td><asp:TextBox ID="editSerijskiBroj" runat="server" Width="80" CssClass="textbox" Text='<%# Bind("SerijskiBroj") %>'></asp:TextBox></td></tr>

<tr><td>Prat. trošak: </td>

<td><asp:CheckBox ID="editTrosak" runat="server" Checked='<%# Bind("Trosak") %>' /></td></tr>

</table></td>

<td valign="top">Podaci za HZZO:</td>

<td valign="top">

<table><tr><td>Količina: </td><td><asp:TextBox Width="15" ID="editKolicinaHZZO" runat="server" CssClass="textbox" Text='<%# Bind("KolicinaHZZO") %>'></asp:TextBox></td></tr>

<tr><td>Artikal:</td><td><asp:DropDownList ID="editHZZO" runat="server" CssClass="dropdown" TabIndex="7" AppendDataBoundItems="True"></asp:DropDownList></td></tr>

</table></td></tr>

<tr><td></td><td></td>

<td><asp:ImageButton ToolTip="<%$ Resources:Resource, lbInsert %>" ID="TemplateSave"

CommandName="Save" runat="server" ImageUrl="../Images/Update.gif" /><asp:ImageButton

ToolTip="<%$ Resources:Resource, lbCancel %>" ID="TemplateCancel" runat="server"

ImageUrl="../Images/Cancel.gif" CommandName="Cancel" CausesValidation="true" /></td></tr>

</table>

</FormTemplate>

I want to bind it with datatable, and when edit form template shows to be selected value chosen right.

Thanks, Ana

4 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 28 Apr 2008, 12:59 PM
Hi,

Try the code in the ItemCreated event below to programatically populate the combobox in the Template column:

CS:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)      
    {                
    if (e.Item is GridEditableItem && e.Item.IsInEditMode) 
 
        {       
      DropDownList drop = (e.Item as GridDataItem)  
["TemplateColumn1"].FindControl("DropDownList1") as DropDownList; 
      // dsSet is the DataSet  that is  populated with data from the database                                 
 
        drop.DataSource = dsSet;     
        drop.DataTextField = "UserId"
    drop.DataBind();     
        drop.AutoPostBack = true;    
        }    
      }  


Thanks,
Princy


0
Ana
Top achievements
Rank 1
answered on 28 Apr 2008, 01:12 PM
Thanks! What to put instead of "TemplateColumn1"? My columns are autogenerated.
0
Shinu
Top achievements
Rank 2
answered on 29 Apr 2008, 08:07 AM
Hi,

Try to put the ColumnUniqueName instead of "TemplateColumn1" in the above given code.

Thanks
Shinu.
0
Ana
Top achievements
Rank 1
answered on 29 Apr 2008, 08:12 AM
Thanks for your reply, but it won't ne neccessary. I've come to solution with following:

void

RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
DropDownList ddl = (DropDownList)e.Item.FindControl("editHZZO") as DropDownList;
HandleDropDown(ddl,
Lookup.GetArtikliHZZO(true)); //(i use this to bind the list)
}
}

Now I just need to set selected value when template shows.
Thanks, Ana

Tags
Grid
Asked by
Ana
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Ana
Top achievements
Rank 1
Shinu
Top achievements
Rank 2
Share this question
or