Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

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

Posted on 2004-09-09
6
Medium Priority
?
1,146 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 600 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 600 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

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

This article explains how to create and use a custom WaterMark textbox class.  The custom WaterMark textbox class allows you to set the WaterMark Background Color and WaterMark text at design time.   IMAGE OF WATERMARKS STEPS Create VB …
Introduction As chip makers focus on adding processor cores over increasing clock speed, developers need to utilize the features of modern CPUs.  One of the ways we can do this is by implementing parallel algorithms in our software.   One recent…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Screencast - Getting to Know the Pipeline

916 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