list in an EditItemTemplat e
I want to setup a gridview that when in edit mode and when the user
selects "Other" from a radiolist that a text box will appear and the
user can input text.
I can get the textbox to appear after selecting other in the radiolist;
however, the selected value in the radiolist disappears. I believe this
is due to the databind call.
But I cannot seemd to get the textbox to appear without makeing the
databind call.
Can someone steer me in the right direction?
My sample code:
<asp:GridView DataKeyNames="R eturnId" ID="ListGrid" runat="server"
AutoGenerateCol umns="False"
OnRowEditing="L istGrid_RowEdit ing"
OnRowUpdating=" ListGrid_RowUpd ating"
OnRowCancelingE dit="ListGrid_R owCancelingEdit ">
<Columns>
<asp:BoundFie ld DataField="Retu rnId" HeaderText="Ret urn Id"
ReadOnly="true" />
<asp:TemplateFi eld ShowHeader="Fal se">
<EditItemTempla te>
<asp:LinkButt on ID="UpdateBtn" runat="server"
CausesValidatio n="True" CommandName="Up date"
Text="Update"></asp:LinkButton>
<asp:LinkButt on ID="CancelBtn" runat="server"
CausesValidatio n="False" CommandName="Ca ncel"
Text="Cancel"></asp:LinkButton>
</EditItemTemplat e>
<ItemTemplate >
<asp:LinkButt on ID="EditBtn" runat="server"
CausesValidatio n="False" CommandName="Ed it"
Text="Edit"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateFie ld>
<asp:TemplateFi eld HeaderText="Rea son"
SortExpression= "ReasonForCredi t">
<EditItemTempla te>
<asp:RadioButto nList ID="ddlReason" AutoPostBack="t rue"
runat="server" OnSelectedIndex Changed="ddlRea son_SelectedInd exChanged"
><asp:ListItem Text="Other" Value="0" />
<asp:ListItem Text="Too big" Value="2" />
<asp:ListItem Text="Too small" Value="1" />
</asp:RadioButton List>
<asp:TextBox ID="tbOther" Visible='<%# IsOtherTBVisibl e(
Eval("ReasonCod e")) %>' runat="server" />
</EditItemTemplat e>
<ItemTemplate >
<asp:Label ID="lblReasonCo de" Text='<%#
Eval("ReasonCod e") %>' runat="server" />
</ItemTemplate>
<ItemStyle CssClass="name" />
<HeaderStyle CssClass="name" />
</asp:TemplateFie ld>
</Columns>
</asp:GridView>
code behind
protected void Page_Load(objec t sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
}
}
protected void BindData()
{
if (!IsPostBack || _RefreshData)
{
DataSet ds = SqlTools.OpenDa taSet("SELECT * FROM RETURNS",
ConnString);
DataView dv = ds.Tables[0].DefaultView;
ListGrid.DataSo urce = ds.Tables[0];
SaveDataSetToSe ssion(ds);
_RefreshData = false;
}
else
{
DataView dv = RetrieveSession DataSet().Table s[0].DefaultView;
ListGrid.DataSo urce = RetrieveSession DataSet().Table s[0];
}
ListGrid.DataBi nd();
}
protected void SaveDataSetToSe ssion(DataSet dsToSave)
{
Session.Add("Re turns", dsToSave);
}
protected DataSet RetrieveSession DataSet()
{
return (DataSet)Sessio n["Returns"];
}
protected void ListGrid_RowEdi ting(object sender, GridViewEditEve ntArgs
e)
{
ListGrid.EditIn dex = e.NewEditIndex;
BindData();
}
protected void ListGrid_RowCan celingEdit(obje ct sender,
GridViewCancelE ditEventArgs e)
{
ListGrid.EditIn dex = -1;
BindData();
}
protected void ddlReason_Selec tedIndexChanged (object sender, EventArgs
e)
{
if (((RadioButtonL ist)sender).Sel ectedItem.Value == "0")
{
_tbOtherVisible = true;
}
else
{
_tbOtherVisible = false;
}
BindData();
}
protected bool IsOtherTBVisibl e(object ReasonCode)
{
return _tbOtherVisible ;
}
*** Sent via Developersdex http://www.developersdex.com ***