Quantcast
Channel: ASP.NET AJAX + Ajax Control Toolkit (ACT)
Viewing all articles
Browse latest Browse all 5678

Gridview not updating in Updatepanel

$
0
0

Hi. I have a gidview control that will not update using AJAX. I cant for the life of me figure out why. all of the other buttons in the panel work. The odd thing is one button in the gridview works, the other does not. Cant figure out why.

The Problem occurs when clicking the "delete" buttonfield in the gridview control...

My ASP.NET markup:

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="Extract.aspx.vb" Inherits="KB.Extract" %><asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"><asp:ScriptManager ID="scmAjax" runat="server" ></asp:ScriptManager><div class="body-content"><asp:UpdatePanel ID="uppUI" runat="server" UpdateMode="Always"><ContentTemplate><div class="container body-content"><div class="col-lg-12 "><label>Select Document:</label><asp:DropDownList ID="cmbSelect" runat="server" CssClass="form-control" AutoPostBack="True" DataTextField="DocumentName" DataValueField="ID"></asp:DropDownList><br /></div></div><div class="container "><div class="col-lg-4">
                        Document Content:<br /><br /><asp:TextBox ID="txtContent" runat="server" CssClass="form-control" ReadOnly="True" Rows="45" TextMode="MultiLine"></asp:TextBox></div><div class="col-lg-4">
                        Snippet Text:<br /><br /><asp:TextBox ID="txtText" runat="server" CssClass="form-control" Rows="4" TextMode="MultiLine"></asp:TextBox><br /><br />
                        Select Tags:<br /><br /><asp:Panel ID="pnlTags" runat="server" Wrap="False"></asp:Panel><br /><div class="alert alert-info "><asp:Label ID="lblResponse" runat="server" Text="Ready"></asp:Label></div><br /><br /><asp:Button ID="cmdAdd" runat="server" Text="Add" CssClass="btn btn-primary " /></div><div class="col-lg-4">
                        Active Tags for this document:<br /><br /><asp:GridView ID="gvcTags" runat="server" AutoGenerateColumns="False" CssClass="table" DataKeyNames="ID"><Columns><asp:BoundField DataField="ID" HeaderText="ID" Visible="False" /><asp:BoundField DataField="Contents" HeaderText="Snip" /><asp:ButtonField Text="<span class='glyphicon glyphicon-tag'></span>" CommandName="Load" HeaderText="Load"><ControlStyle CssClass="btn btn-primary" /></asp:ButtonField><asp:ButtonField Text="<span class='glyphicon glyphicon-trash'></span>" CommandName="Delete" HeaderText="Delete" ><ControlStyle CssClass="btn btn-danger" /></asp:ButtonField></Columns></asp:GridView><br /></div></ContentTemplate></asp:UpdatePanel></div></asp:Content>

And my code behind:

Public Class Extract
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim db As New AppDataClassesDataContext
        Dim tg As Tag
        Dim iqt As IQueryable(Of Tag)
        Dim ck As CheckBox
        Dim litBreak As New Literal

        ' lock


        cmbSelect.DataSource = (From dx In db.SourceDocs
                                Order By dx.DocumentDate
                                Select dx)

        cmbSelect.DataBind()

        iqt = From tx In db.Tags
              Order By tx.TagName
              Select tx

        For Each tg In iqt
            ck = New CheckBox
            ck.Text = tg.TagName
            ck.ID = ck.ID
            pnlTags.Controls.Add(ck)
            litBreak = New Literal
            litBreak.Text = "<br />"
            pnlTags.Controls.Add(litBreak)
        Next

        UpdateUI()
        gvcTags.DataBind()


    End Sub


    Private Sub UpdateUI()

        Dim db As New AppDataClassesDataContext
        Dim sd As SourceDoc

        ' document content
        sd = (From sx In db.SourceDocs
              Where sx.ID = cmbSelect.SelectedValue
              Select sx).FirstOrDefault

        If IsNothing(sd) Then
            txtContent.Text = Nothing
        Else
            txtContent.Text = sd.DocumentContent
        End If

        ' existing tags
        UpdateTagList()

    End Sub

    Protected Sub cmdAdd_Click(sender As Object, e As EventArgs) Handles cmdAdd.Click

        Dim db As New AppDataClassesDataContext
        Dim ck As New CheckBox
        Dim TagGroup As New DocumentTagGroup
        Dim DocTag As DocumentTag
        Dim ctl As Control

        With TagGroup
            .DocumentID = cmbSelect.SelectedValue
            .Contents = txtText.Text
        End With

        db.DocumentTagGroups.InsertOnSubmit(TagGroup)
        db.SubmitChanges()

        For Each ctl In pnlTags.Controls
            If ctl.GetType() = ck.GetType Then

                ck = ctl

                If ck.Checked Then
                    DocTag = New DocumentTag
                    DocTag.GroupID = TagGroup.ID
                    DocTag.TagID = CInt(Mid(ck.ID, 4))

                    db.DocumentTags.InsertOnSubmit(DocTag)

                End If
            End If

        Next

        db.SubmitChanges()

        lblResponse.Text = "Snippet Tag '" & Left(TagGroup.Contents, 30) & "... Created Succesfully"

        UpdateTagList()

    End Sub

    Private Sub UpdateTagList()

        Dim db As New AppDataClassesDataContext

        gvcTags.DataSource = (From tx In db.DocumentTagGroups
                              Where tx.DocumentID = cmbSelect.SelectedValue
                              Order By tx.Contents
                              Select New With {.ID = tx.ID, .Contents = Left(tx.Contents, 50)})

        gvcTags.DataBind()


    End Sub

    Private Sub gvcTags_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles gvcTags.RowCommand

        Dim db As New AppDataClassesDataContext
        Dim idx As Integer = e.CommandArgument
        Dim Tg As DocumentTagGroup

        If e.CommandName = "Delete" Then

            Tg = (From tx In db.DocumentTagGroups
                  Where tx.ID = CInt(gvcTags.DataKeys(idx).Item(0))
                  Select tx).First

            db.DocumentTagGroups.DeleteOnSubmit(Tg)
            db.SubmitChanges()

            db = New AppDataClassesDataContext

            gvcTags.DataSource = (From tx In db.DocumentTagGroups
                                  Where tx.DocumentID = cmbSelect.SelectedValue
                                  Order By tx.Contents
                                  Select New With {.ID = tx.ID, .Contents = Left(tx.Contents, 50)})

            gvcTags.DataBind()

        End If

        If e.CommandName = "Load" Then
            Tg = (From tx In db.DocumentTagGroups
                  Where tx.ID = CInt(gvcTags.DataKeys(idx).Item(0))
                  Select tx).First

            txtText.Text = Tg.Contents

        End If



    End Sub


End Class

please help!

Thanks


Viewing all articles
Browse latest Browse all 5678

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>