Solved

Change AutoPostBack setting on a datagrid column from server-side VB.NET code.

Posted on 2004-09-09
6
1,079 Views
Last Modified: 2012-08-13
I have a datagrid with columns that are bound to a datasource from SQL server table.  The HTML code is the following;

<asp:datagrid id="dgAddressCorrection" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 180px" AllowPaging="True" OnPageIndexChanged="dgAddressCorrection_Change" runat="server" CssClass="WebControl_DataGridDef" PageSize="100" Width="1468px" AutoGenerateColumns="False" AllowSorting="True">
<Columns>
      <asp:BoundColumn Visible="False" DataField="SourceID"></asp:BoundColumn>
      <asp:BoundColumn DataField="Name" SortExpression="Name" HeaderText="Name"></asp:BoundColumn>
      <asp:BoundColumn DataField="Address" SortExpression="Address" HeaderText="Address"></asp:BoundColumn>
      <asp:BoundColumn DataField="Phone" SortExpression="Phone" HeaderText="Main Phone"></asp:BoundColumn>
      <asp:TemplateColumn>
            <ItemTemplate>
                  <asp:Button id="btnEdit" Text="Edit" Runat="server" Width="50px" CommandName="EditAddressCorrection" CssClass="WebControl_ButtonDef"></asp:Button>
            </ItemTemplate>
      </asp:TemplateColumn>
      <asp:TemplateColumn HeaderText="Overridden" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
            <ItemTemplate>
                  <asp:CheckBox id="IsAddressOverriddenField" AutoPostBack="True" OnCheckedChanged="EnableSavebtn" Checked='<%# DataBinder.Eval(Container.DataItem,"IsAddressOverridden") %>' runat="server" CssClass="WebControl_CheckBox">
                  </asp:CheckBox>
            </ItemTemplate>
      </asp:TemplateColumn>
</Columns>
</asp:datagrid>

On the server-side, I turn the AutoPostBack to false on the CheckBox column (ID=IsAddressOverriddenField) with the following code;

    Sub EnableSavebtn(ByVal sender As Object, ByVal e As EventArgs)
        btnSaveOvr.Enabled = True
        Dim i As Integer
        For i = 0 To (dgAddressCorrection.Items.Count - 1)
            Dim myCheckBox2 As CheckBox = CType(dgAddressCorrection.Items(i).Cells(5).Controls(1), CheckBox)
            myCheckBox2.AutoPostBack = False
        Next
    End Sub

This works, but I have to turn the AutoPostBack to false for every row in the datagrid.  Is there a way to change the AutoPostBack for the whole column instead of doint it for every row?  I only need to have AutoPostBack set to true for the first time the user click in one of the CheckBox in the datagrid, after that first click, I do not need AutoPostBack set to true.
0
Comment
Question by:jeandoiron
  • 2
6 Comments
 
LVL 3

Accepted Solution

by:
tomv011397 earned 150 total points
ID: 12018881
you will need to write some Javascript to do this, you COULD do it in code, but it is very ugly to do. (on the if ispostback, set the control to postback = false)

the javascript can be set to do a submit on the first check only etc.

Tom
0
 
LVL 4

Assisted Solution

by:Javert93
Javert93 earned 150 total points
ID: 12022217
This code should do what you are asking:

    Public Sub dgAddressCorrection_ItemDataBound(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Handles dgAddressCorrection.ItemDataBound
        AddHandler CType(e.Item.Cells(5).Controls(1), CheckBox).CheckedChanged, OnItemCheckedChanged
    End Sub

    Public Sub OnItemCheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
        Dim cb As CheckBox = CType(sender, CheckBox)
        If Not cb.Checked Then cb.AutoPostBack = False
    End Sub

I wans't able to test it, but it should work.
0
 
LVL 4

Expert Comment

by:Javert93
ID: 12022229
However, that disables the AutoPostBack for the each check box when the user clicks on it.
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (http://www.ecb.europa.eu/stats/exch…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question