problem with linbutton in edit mode

Discussion in 'ASP .Net' started by Mark, Jul 31, 2007.

  1. Mark

    Mark Guest

    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:TemplateField><ItemTemplate>
    <asp:LinkButton ID="lb1" runat="server" CommandName="Edit"
    ></asp:LinkButton>

    </ItemTemplate></asp:TemplateField>

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

    <asp:TemplateField><EditItemTemplate>
    <asp:LinkButton ID="lb3" runat="server" CommandName="Cancel"
    ></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
    Mark, Jul 31, 2007
    #1
    1. Advertising

  2. Mark

    Teemu Keiski Guest

    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.


    --
    Teemu Keiski
    AspInsider, ASP.NET MVP
    http://blogs.aspadvice.com/joteke
    http://teemukeiski.net


    "Mark" <> wrote in message
    news:uLABk$...
    > 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:TemplateField><ItemTemplate>
    > <asp:LinkButton ID="lb1" runat="server" CommandName="Edit"
    > ></asp:LinkButton>

    > </ItemTemplate></asp:TemplateField>
    >
    > <asp:TemplateField><EditItemTemplate>
    > <asp:LinkButton ID="lb2" runat="server" CommandName="Update"
    > OnClientClick="myfunction();"></asp:LinkButton>
    > </EditItemTemplate></asp:TemplateField>
    >
    > <asp:TemplateField><EditItemTemplate>
    > <asp:LinkButton ID="lb3" runat="server" CommandName="Cancel"
    > ></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
    >
    Teemu Keiski, Jul 31, 2007
    #2
    1. Advertising

  3. Mark

    Mark Guest

    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.


    "Teemu Keiski" <> schreef in bericht
    news:...
    > 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.
    >
    >
    > --
    > Teemu Keiski
    > AspInsider, ASP.NET MVP
    > http://blogs.aspadvice.com/joteke
    > http://teemukeiski.net
    >
    >
    > "Mark" <> wrote in message
    > news:uLABk$...
    >> 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:TemplateField><ItemTemplate>
    >> <asp:LinkButton ID="lb1" runat="server" CommandName="Edit"
    >> ></asp:LinkButton>

    >> </ItemTemplate></asp:TemplateField>
    >>
    >> <asp:TemplateField><EditItemTemplate>
    >> <asp:LinkButton ID="lb2" runat="server" CommandName="Update"
    >> OnClientClick="myfunction();"></asp:LinkButton>
    >> </EditItemTemplate></asp:TemplateField>
    >>
    >> <asp:TemplateField><EditItemTemplate>
    >> <asp:LinkButton ID="lb3" runat="server" CommandName="Cancel"
    >> ></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
    >>

    >
    >
    Mark, Jul 31, 2007
    #3
  4. Mark

    Teemu Keiski Guest

    Hi,

    I think cannot use it until the grid has been databound though not 100%
    sure. Try after calling DataBind()

    --
    Teemu Keiski
    AspInsider, ASP.NET MVP
    http://blogs.aspadvice.com/joteke
    http://teemukeiski.net

    ..


    "Mark" <> wrote in message
    news:...
    > 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.
    >
    >
    > "Teemu Keiski" <> schreef in bericht
    > news:...
    >> 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.
    >>
    >>
    >> --
    >> Teemu Keiski
    >> AspInsider, ASP.NET MVP
    >> http://blogs.aspadvice.com/joteke
    >> http://teemukeiski.net
    >>
    >>
    >> "Mark" <> wrote in message
    >> news:uLABk$...
    >>> 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:TemplateField><ItemTemplate>
    >>> <asp:LinkButton ID="lb1" runat="server" CommandName="Edit"
    >>> ></asp:LinkButton>
    >>> </ItemTemplate></asp:TemplateField>
    >>>
    >>> <asp:TemplateField><EditItemTemplate>
    >>> <asp:LinkButton ID="lb2" runat="server" CommandName="Update"
    >>> OnClientClick="myfunction();"></asp:LinkButton>
    >>> </EditItemTemplate></asp:TemplateField>
    >>>
    >>> <asp:TemplateField><EditItemTemplate>
    >>> <asp:LinkButton ID="lb3" runat="server" CommandName="Cancel"
    >>> ></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
    >>>

    >>
    >>

    >
    >
    Teemu Keiski, Jul 31, 2007
    #4
  5. Mark

    Teemu Keiski Guest

    See: http://fredrik.nsquared2.com/viewpost.aspx?postid=339

    E.g try changing cells Visible property but in RowDataBound

    --
    Teemu Keiski
    AspInsider, ASP.NET MVP
    http://blogs.aspadvice.com/joteke
    http://teemukeiski.net



    "Mark" <> wrote in message
    news:...
    > 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.
    >
    >
    > "Teemu Keiski" <> schreef in bericht
    > news:...
    >> 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.
    >>
    >>
    >> --
    >> Teemu Keiski
    >> AspInsider, ASP.NET MVP
    >> http://blogs.aspadvice.com/joteke
    >> http://teemukeiski.net
    >>
    >>
    >> "Mark" <> wrote in message
    >> news:uLABk$...
    >>> 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:TemplateField><ItemTemplate>
    >>> <asp:LinkButton ID="lb1" runat="server" CommandName="Edit"
    >>> ></asp:LinkButton>
    >>> </ItemTemplate></asp:TemplateField>
    >>>
    >>> <asp:TemplateField><EditItemTemplate>
    >>> <asp:LinkButton ID="lb2" runat="server" CommandName="Update"
    >>> OnClientClick="myfunction();"></asp:LinkButton>
    >>> </EditItemTemplate></asp:TemplateField>
    >>>
    >>> <asp:TemplateField><EditItemTemplate>
    >>> <asp:LinkButton ID="lb3" runat="server" CommandName="Cancel"
    >>> ></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
    >>>

    >>
    >>

    >
    >
    Teemu Keiski, Jul 31, 2007
    #5
  6. Mark

    Mark Guest

    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 ...



    "Teemu Keiski" <> schreef in bericht
    news:...
    > See: http://fredrik.nsquared2.com/viewpost.aspx?postid=339
    >
    > E.g try changing cells Visible property but in RowDataBound
    >
    > --
    > Teemu Keiski
    > AspInsider, ASP.NET MVP
    > http://blogs.aspadvice.com/joteke
    > http://teemukeiski.net
    >
    >
    >
    > "Mark" <> wrote in message
    > news:...
    >> 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.
    >>
    >>
    >> "Teemu Keiski" <> schreef in bericht
    >> news:...
    >>> 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.
    >>>
    >>>
    >>> --
    >>> Teemu Keiski
    >>> AspInsider, ASP.NET MVP
    >>> http://blogs.aspadvice.com/joteke
    >>> http://teemukeiski.net
    >>>
    >>>
    >>> "Mark" <> wrote in message
    >>> news:uLABk$...
    >>>> 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:TemplateField><ItemTemplate>
    >>>> <asp:LinkButton ID="lb1" runat="server" CommandName="Edit"
    >>>> ></asp:LinkButton>
    >>>> </ItemTemplate></asp:TemplateField>
    >>>>
    >>>> <asp:TemplateField><EditItemTemplate>
    >>>> <asp:LinkButton ID="lb2" runat="server" CommandName="Update"
    >>>> OnClientClick="myfunction();"></asp:LinkButton>
    >>>> </EditItemTemplate></asp:TemplateField>
    >>>>
    >>>> <asp:TemplateField><EditItemTemplate>
    >>>> <asp:LinkButton ID="lb3" runat="server" CommandName="Cancel"
    >>>> ></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
    >>>>
    >>>
    >>>

    >>
    >>

    >
    >
    Mark, Jul 31, 2007
    #6
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John J Lee
    Replies:
    3
    Views:
    473
    bruno at modulix
    Dec 1, 2005
  2. Edward Loper
    Replies:
    0
    Views:
    460
    Edward Loper
    Aug 7, 2007
  3. Frank Kurka
    Replies:
    8
    Views:
    305
  4. Jaime Stuardo

    GridView control enters edit mode when I click Edit link twice

    Jaime Stuardo, Apr 7, 2006, in forum: ASP .Net Web Controls
    Replies:
    0
    Views:
    394
    Jaime Stuardo
    Apr 7, 2006
  5. jobs at webdos
    Replies:
    0
    Views:
    464
    jobs at webdos
    Oct 9, 2006
Loading...

Share This Page