【IT168技术文档】
Listview控件是VS2008中新增控件,相关的使用方法也有不少了,但是在AJAX中配合DropdownList控件的介绍却不多见。我在使用过程中出现下面的情况:
“Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用。”的错误
如何解决这个问题,结合http://www.webswapp.com/codesamples/aspnet20/dependentlists/default.aspx的资料,希望能给刚开始使用的朋友一些帮助。
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:ListView ID="ListView1" runat="server" DataKeyNames="UserID" DataSourceID="SqlDataSource1" InsertItemPosition="LastItem" OnItemUpdating="ListView1_ItemUpdating" oniteminserting="ListView1_ItemInserting"> <AlternatingItemTemplate> <tr style="background-color: #FAFAD2; color: #284775;"> <td> <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" /> <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" /> </td> <td> <asp:Label ID="UserIDLabel" runat="server" Text='<%# Eval("UserID") %>' /> </td> <td> <asp:Label ID="USER_NAMELabel" runat="server" Text='<%# Eval("USER_NAME") %>' /> </td> <td> <asp:Label ID="USER_PASSWORDLabel" runat="server" Text='<%# Eval("USER_PASSWORD") %>' /> </td> <td> <asp:Label ID="RoleIdLabel" runat="server" Text='<%# Eval("RoleId") %>' /> </td> <td> <asp:Label ID="USER_DWBMLabel" runat="server" Text='<%# Eval("USER_DWBM") %>' /> </td> <td> <asp:Label ID="DEPCODELabel" runat="server" Text='<%# Eval("DEPCODE") %>' /> </td> </tr> </AlternatingItemTemplate> <LayoutTemplate> <table runat="server"> <tr runat="server"> <td runat="server"> <table id="itemPlaceholderContainer" runat="server" border="1" style="background-color: #FFFFFF; border-collapse: collapse; border-color: #999999; border-style: none; border-width: 1px; font-family: Verdana, Arial, Helvetica, sans-serif;"> <tr runat="server" style="background-color: #FFFBD6; color: #333333;"> <th runat="server"> </th> <th runat="server"> 用户ID </th> <th runat="server"> 用户名 </th> <th runat="server"> 用户密码 </th> <th runat="server"> 所属角色 </th> <th runat="server"> 用户矿籍 </th> <th runat="server"> 用户单位 </th> </tr> <tr id="itemPlaceholder" runat="server"> </tr> </table> </td> </tr> <tr runat="server"> <td runat="server" style="text-align: center; background-color: #FFCC66; font-family: Verdana, Arial, Helvetica, sans-serif; color: #333333;"> <asp:DataPager ID="DataPager1" runat="server"> <Fields> <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowLastPageButton="True" /> </Fields> </asp:DataPager> </td> </tr> </table> </LayoutTemplate> <InsertItemTemplate> <tr style=""> <td> <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" /> <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" /> </td> <td> <asp:TextBox ID="UserIDTextBox" runat="server" Text='<%# Bind("UserID") %>' Width="70" /> </td> <td> <asp:TextBox ID="USER_NAMETextBox" runat="server" Text='<%# Bind("USER_NAME") %>' Width="70" /> </td> <td> <asp:TextBox ID="USER_PASSWORDTextBox" runat="server" Text='<%# Bind("USER_PASSWORD") %>' Width="70" /> </td> <td> <asp:DropDownList ID="roleddl" runat="server" DataSourceID="sqlroleds" DataValueField="RoleId" DataTextField="RoleName" OnDataBound="roleddl_DataBound"> </asp:DropDownList> </td> <td> <asp:TextBox ID="USER_DWBMTextBox" runat="server" Text='<%# Bind("USER_DWBM") %>' Width="70" /> </td> <td> <asp:TextBox ID="DEPCODETextBox" runat="server" Text='<%# Bind("DEPCODE") %>' Width="70" /> </td> </tr> </InsertItemTemplate> <SelectedItemTemplate> <tr style="background-color: #FFCC66; font-weight: bold; color: #000080;"> <td> <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" /> <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" /> </td> <td> <asp:Label ID="UserIDLabel" runat="server" Text='<%# Eval("UserID") %>' /> </td> <td> <asp:Label ID="USER_NAMELabel" runat="server" Text='<%# Eval("USER_NAME") %>' /> </td> <td> <asp:Label ID="USER_PASSWORDLabel" runat="server" Text='<%# Eval("USER_PASSWORD") %>' /> </td> <td> <asp:Label ID="RoleIdLabel" runat="server" Text='<%# Eval("RoleId") %>' /> </td> <td> <asp:Label ID="USER_DWBMLabel" runat="server" Text='<%# Eval("USER_DWBM") %>' /> </td> <td> <asp:Label ID="DEPCODELabel" runat="server" Text='<%# Eval("DEPCODE") %>' /> </td> </tr> </SelectedItemTemplate> <EmptyDataTemplate> <table runat="server" style="background-color: #FFFFFF; border-collapse: collapse; border-color: #999999; border-style: none; border-width: 1px;"> <tr> <td> No data was returned. </td> </tr> </table> </EmptyDataTemplate> <EditItemTemplate> <tr style="background-color: #FFCC66; color: #000080;"> <td> <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="更新" /> <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="取消" /> </td> <td> <asp:Label ID="UserIDLabel1" runat="server" Text='<%# Eval("UserID") %>' /> </td> <td> <asp:TextBox ID="USER_NAMETextBox" runat="server" Text='<%# Bind("USER_NAME") %>' Width="70" /> </td> <td> <asp:TextBox ID="USER_PASSWORDTextBox" runat="server" Text='<%# Bind("USER_PASSWORD") %>' Width="70" /> </td> <td> <%--在listview EdititemTemplate中定义一个ID为roleddl的DropDownList控件 OnDataBound事件邦定roleddl_DataBound事件 --%> <asp:DropDownList ID="roleddl" runat="server" DataSourceID="sqlroleds" DataValueField="RoleId" DataTextField="RoleName" OnDataBound="roleddl_DataBound"> </asp:DropDownList> </td> <td> <asp:TextBox ID="USER_DWBMTextBox" runat="server" Text='<%# Bind("USER_DWBM") %>' Width="70" /> </td> <td> <asp:TextBox ID="DEPCODETextBox" runat="server" Text='<%# Bind("DEPCODE") %>' Width="70" /> </td> </tr> </EditItemTemplate> <ItemTemplate> <tr style="background-color: #FFFBD6; color: #333333;"> <td> <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" /> <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" /> </td> <td> <asp:Label ID="UserIDLabel" runat="server" Text='<%# Eval("UserID") %>' /> </td> <td> <asp:Label ID="USER_NAMELabel" runat="server" Text='<%# Eval("USER_NAME") %>' /> </td> <td> <asp:Label ID="USER_PASSWORDLabel" runat="server" Text='<%# Eval("USER_PASSWORD") %>' /> </td> <td> <asp:Label ID="RoleIdLabel" runat="server" Text='<%# Eval("RoleId") %>' /> </td> <td> <asp:Label ID="USER_DWBMLabel" runat="server" Text='<%# Eval("USER_DWBM") %>' /> </td> <td> <asp:Label ID="DEPCODELabel" runat="server" Text='<%# Eval("DEPCODE") %>' /> </td> </tr> </ItemTemplate> </asp:ListView> </ContentTemplate> </asp:UpdatePanel>