Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 457
  • Last Modified:

Handling DataList event from textbox changed

Greetings;

I need to capture the event where the user has changed the value of a textbox in a datalist row. There are no other user interactive controls other than this textbox. There are label controls in the row.

I have a ItemDataBound event routine which performs calculations involving this textbox, however, the new value of the textbox is not picked up by the ItemDataBound event.

Could my error be in expecting to access a changed textbox value defined within an ItemTemplate instead of an EditTemplate? If so, how might I get around this?

Much thanks ... David Bach
<asp:DataList ID="dlOrderSelection" runat="server" RepeatColumns="1" ShowFooter="False"
        Width="100%">
        <ItemStyle Wrap="False" />
        <HeaderTemplate>
            <table style="width: 100%;">
                <tr>
                    <td align="center" nowrap="nowrap" width="400px">
                        <asp:Literal ID="litProductName" runat="server" Text="Product Name"></asp:Literal>
                    </td>
                    <td align="center" width="100">
                        <asp:Literal ID="litSeatUnused" runat="server" Text="Seats Unused"></asp:Literal>
                    </td>
                    <td align="center" width="70">
                        <asp:Literal ID="litQuantity" runat="server" Text="Quantity"></asp:Literal>
                    </td>
                    <td align="center" width="110">
                        <asp:Literal ID="litCostPerUnit" runat="server" Text="Cost Per Unit"></asp:Literal>
                    </td>
                    <td align="center" width="90">
                        <asp:Literal ID="litTotalCost" runat="server" Text="Total Cost"></asp:Literal>
                    </td>
                </tr>
            </table>
        </HeaderTemplate>
        <ItemTemplate>
            <table id="Table4" runat="server" style="width: 100%;">
                <tr>
                    <td nowrap="nowrap" style="text-align: left" width="400px">
                        <asp:Label ID="lblProductSelect" runat="server" Text='<%# Bind("strName") %>'></asp:Label>
                    </td>
                    <td nowrap="nowrap" style="text-align: right" width="100px">
                        <asp:Label ID="lblProductCurrentUnusedSeats" runat="server" Style="text-align: right">0</asp:Label>
                    </td>
                    <td nowrap="nowrap" width="70px">
                        <asp:TextBox ID="tbxProductQuantity" runat="server" Width="70px" 
                            MaxLength="5" Style="text-align: right">0</asp:TextBox>
                    </td>
                    <td nowrap="nowrap" style="text-align: right" width="110px">
                        <asp:Label ID="lblProductPerItemCost" runat="server" Style="text-align: right">0</asp:Label>
                    </td>
                    <td style="text-align: right" width="90px">
                        <asp:Label ID="lblProductTotalItemCost" runat="server" Style="text-align: right">0</asp:Label>
                    </td>
                </tr>
            </table>
        </ItemTemplate>
    </asp:DataList>

Open in new window

0
David Bach
Asked:
David Bach
1 Solution
 
samtran0331Commented:
itemdatabound only fires when the datalist is bound...so you will lose any user-entered value...
your routine to loop through the datalist has to be in its own subroutine and not involve re-binding the datalist
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now