problem with linbutton in edit mode

  • Thread starter Thread starter Mark
  • Start date Start date
M

Mark

Hi,

i want to perform several things (like checking and correcting automatically
the lenght of a multiline textbox in order to avoid Truncate error, removing
automatically "<" and "'" to avoid "potential danger" error etc ..) with
javascript on a gridview.

If i take in the aspx file this:
<asp:CommandField ShowEditButton="True">
i have no possibility to use the OnClientClick property.

So i made some Templatefields like this:
</asp:LinkButton>
</ItemTemplate></asp:TemplateField>

<asp:TemplateField><EditItemTemplate>
<asp:LinkButton ID="lb2" runat="server" CommandName="Update"
OnClientClick="myfunction();"></asp:LinkButton>
</EditItemTemplate></asp:TemplateField>

</asp:LinkButton>
</EditItemTemplate></asp:TemplateField>

My problem is now that the linkbutton "Edit" not only appears in normal
mode, but also in Edit mode, together with "Update" and "Cancel"..

I can make it invisible in code-behind, but then there is still an empty
space or column in the gridview.

Any way to solve this?
Thanks
Mark
 
Hi,

couldn't you just set myGrid.Columns(x).Visible = False where x is the index
of the column you wish to hide, when you don't want the LinkButton to be
displayed. That would hide the entire column, not just the control.
 
Hi, thanks for replying.

I tried this:

Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If (e.Row.RowState And DataControlRowState.Edit) = DataControlRowState.Edit
Then
If e.Row.RowType = DataControlRowType.DataRow Then
Dim lb As LinkButton
lb = e.Row.FindControl("lb2")
lb.Visible = False
....

But there is still an empty column in the selected row and "Edit" is shown
in all not selected rows.

I also tried this:
Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
If (e.Row.RowState And DataControlRowState.Edit) = DataControlRowState.Edit
Then
GridView1.Columns(1).Visible = False

but this gives the error: Object reference not set to an instance of an
object.
 
I tried this:
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewRowEventArgs) Handles
GridView1.RowDataBound
If (e.Row.RowState And DataControlRowState.Edit) =
DataControlRowState.Edit Then
Dim lb As LinkButton
lb = e.Row.FindControl("lb2")
lb.Visible = False
End If
End Sub
but same result: the column is only empty (with a gap) in the selected row.

I also tried this:

Sub GridView1_DataBound doesn't accept the line:
" If (e.Row.RowState And DataControlRowState.Edit) =
DataControlRowState.Edit Then"

It seems to be a though case ...
 
Back
Top