音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

ASP.NET笔记之 ListView 与 DropDownList的使用
日期:2021-09-07 21:39:09   来源:脚本之家

1、Repeater用来显示数据、ListView用来操作数据

InsertItemTemplate和updateItemTemplate
**Eval(显示数据)和Bind(双向绑定:不仅是需要展现,更需要把数据绑定到数据库中)

ItemPlaceholderID:占位符,决定占位,把头部(之上)和尾部(之下)分隔开
ItemTemplate:展示功能

自动生成的ListView需要调整的地方
(1、生成的样式要提到style中,不要用内联的方式
(2、ItemTemplate里面一半没必要用<asp:Label>展示只读数据,所以可以直接输出
<%#Eval("id")%>
(3、LayoutTemplate中必须有一个ItempPlaceholderID 的服务端控件
(4、LayoutTemplate中表头的位置要汉化,所有template中的不需显示的字段需删除或更改位置

2、事件
流程同Repeater:

//首先判断数据行的类型
e.Item.ItemType==ListViewItemType.DataItem

//把e.Item转化成ListViewDataItem才能拿到DataItem
ListViewDataItem lvDataItem=(ListViewDataItem)e.Item;
DataRowView rowView=(DataRowView)lvDataItem.DataItem;
//获得某一列
var xRow=(...DAL.DataSet1.T_UserRow)rowVIew.Row;
//获得某一列的值
xRow.Age、xRow.sName...etc.

3、具体注意
(1、设定相应的按钮、控件、Validator为童颜的ValidationGroup,
防止不同模板中的Validator互相干扰,
(2、将Cancel按钮中的CausesValidation="false"使得插入修改数据时
可以取消操作,这样即使在同一个分组内也可以不互相影响

4、给InsertItemplate增加默认值
//在ItemCreate属性中进入函数
if(e.Item.ItemType==ListViewItemType.InsertItem){
TextBox AgeText=(TextBox)e.Item.FindControl("AgeID");
AgeText.Text="20";
}

5、主键Guid:插入到数据库

(1、ListView的ItemInserting属性:
//要插入到数据库之前的数据的键值对
e.values["id"]=Guid.NewGuid();

(2、ListView的ItemUpdateing属性:
e.ItemIdex
e.OldValues//更新前的值
e.NewValues["Age"]//更新后的值
e.Cancel=true;//取消非法数据插入

ObjectDataSource
绑定id为guid 类型的时候

 6、DropDrownList


(1、
//包含在DropDrownList中的项
<asp:ListItem value="man">男</asp:ListItem>

(2、
**后台代码:更新的时候
//找到ListView
//ListView1.Item[e.ItemIndex].FindControl("ID");
//它是一个DropViewList
DropDrownList d=(DropDrownList)listView1.Item[e.ItemIndex].FindControl("ID");
//赋值
e.NewValues=["字段"]=d.SelectedValue;

(3、
**后台代码:实现编辑时显示原先的数据
//有数据行
if(e.Item.ItemType==ListVIewDataList.DataItem){
//取控件
DropDownList d=(DropDownLIst)e.Item.FindControl("ID");

if(d!=null){
//取到这一行绑定的数据
ListViewDataItem lv=(ListViewDataItem)e.Item;
DataRowItem row=(dataRowItem)lv.DataItem;
//如果这一行有数据
if(row!=null){
//读取数据库该Row的值
var myRow=(项目名称.DAL.DataSetUsers.T_Users)row.Row;

//将读取打偶的Row值设置为下拉菜单中的选项
d.SelectedValue=myRow.字段;
}
}
}

(4、 可以看不可以用 Enabled="false

 

友情链接管理:

效果:

存在问题总结:

(1、警告 1 元素“ListView”不是已知元素。原因可能是网站中存在编译错误,或者缺少 web.config 文件。 E:\code\Projects\WebSite_zzl01\友情链接\LinkUrl_Admin.aspx 39 10 友情链接

(2、onLinkTypeChange(this,'" + logoID.ClientID + "') 中传给前台javascript的ID不是客户端的ID,会导致显示和隐藏的功能无法实现,所以增加一个myID

:   logoID.Attributes["myid"] = logoID.ClientID; 来传递参数

LinkUrl_Admin.aspx.cs

复制代码 代码如下:

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Data;

 namespace 友情链接
 {
     public partial class LinkUrl_Admin : System.Web.UI.Page
     {
         protected void Page_Load(object sender, EventArgs e)
         {

         }

         protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
         {
             //ListView1的属性ItemDataBound数据绑定每一行
             //显示数据
             if (e.Item.ItemType == ListViewItemType.DataItem) {
                 DropDownList ddlsLinkType = (DropDownList)e.Item.FindControl("ddlsLinkType");
                 ListViewDataItem dataitem = (ListViewDataItem)e.Item;
                 DataRowView myrow = (DataRowView)dataitem.DataItem;

                 if (ddlsLinkType != null && myrow != null) {
                     var sUrl = (友情链接.ADL.DataSet1.T_LinksRow)myrow.Row;
                     ddlsLinkType.SelectedValue = sUrl.sLinkType;
                 }
             }

         }

         protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
         {
             //插入数据
             DropDownList ddlsLinkType = (DropDownList)e.Item.FindControl("ddlsLinkType");
             e.Values["sLinkType"] = ddlsLinkType.SelectedValue;   
         }

         protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
         {
             //更新数据
             DropDownList ddlsLinkType = (DropDownList)ListView1.Items[e.ItemIndex].FindControl("ddlsLinkType");
             e.NewValues["sLinkType"] = ddlsLinkType.SelectedValue;
         }

         protected void ListView1_ItemCreated(object sender, ListViewItemEventArgs e)
         {
             if (e.Item.ItemType == ListViewItemType.DataItem || e.Item.ItemType ==
                 ListViewItemType.InsertItem) {
                DropDownList ddlsLinkType = (DropDownList)e.Item.FindControl("ddlsLinkType");
                TextBox logoID = (TextBox)e.Item.FindControl("LogoUrlTextBox");
                 if (ddlsLinkType != null&&logoID!=null) {
                     //onchange是html中select的属性
                     //onLinkTypeChange是后台代码调用前台javascript中自定义的jQuery函数

                     logoID.Attributes["myid"] = logoID.ClientID;

                     ddlsLinkType.Attributes["onchange"] = "onLinkTypeChange(this,'" + logoID.ClientID + "')";
                     if(ddlsLinkType.SelectedValue=="Text"){
                         logoID.Style["display"] = "none";
                     }
                 }
             }
         }
     }
 }

LinkUrl_Admin.aspx
复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="LinkUrl_Admin.aspx.cs" Inherits="友情链接.LinkUrl_Admin" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
     <title>友情链接管理页面</title>
     <script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>
     <script type="text/javascript">
         function onLinkTypeChange(urlType, logoID) {
             if ($(urlType).val() == "Text") {
                 $("input:text[myid=" + logoID + "]").hide();
                 //$("#" + logoID).hide(); //传到到客户端不是客户端的id
                 //$("#ListView1_LogoURLTextBox").hide();//真正的id
             }
             else {
                 $("input:text[myid=" + logoID + "]").show();
                 //$("#" + logoID).show();
             }
         }
     </script>
 </head>
 <body>
     <form id="form1" runat="server">
     <div>

         <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
             DeleteMethod="Delete" InsertMethod="Insert"
             OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
             TypeName="友情链接.ADL.DataSet1TableAdapters.T_LinksTableAdapter"
             UpdateMethod="Update">
             <DeleteParameters>
                 <asp:Parameter Name="Original_ID" Type="Int64" />
             </DeleteParameters>
             <InsertParameters>
                 <asp:Parameter Name="SeoNo" Type="Int32" />
                 <asp:Parameter Name="SiteName" Type="String" />
                 <asp:Parameter Name="sLinkType" Type="String" />
                 <asp:Parameter Name="SiteUrl" Type="String" />
                 <asp:Parameter Name="LogoUrl" Type="String" />
             </InsertParameters>
             <UpdateParameters>
                 <asp:Parameter Name="SeoNo" Type="Int32" />
                 <asp:Parameter Name="SiteName" Type="String" />
                 <asp:Parameter Name="sLinkType" Type="String" />
                 <asp:Parameter Name="SiteUrl" Type="String" />
                 <asp:Parameter Name="LogoUrl" Type="String" />
                 <asp:Parameter Name="Original_ID" Type="Int64" />
             </UpdateParameters>
         </asp:ObjectDataSource>

     </div>
     <asp:ListView ID="ListView1" runat="server" DataKeyNames="ID"
         DataSourceID="ObjectDataSource1" InsertItemPosition="LastItem"
         onitemdatabound="ListView1_ItemDataBound"
         oniteminserting="ListView1_ItemInserting"
         onitemupdating="ListView1_ItemUpdating"
         onitemcreated="ListView1_ItemCreated">

         <EditItemTemplate>
             <tr style="background-color: #999999;">
                 <td>
                     <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="更新" />
                     <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="取消" />
                 </td>
                 <td>
                     <asp:TextBox ID="SeoNoTextBox" runat="server" Text='<%# Bind("SeoNo") %>' />
                 </td>
                 <td>
                     <asp:TextBox ID="SiteNameTextBox" runat="server"
                         Text='<%# Bind("SiteName") %>' />
                 </td>
                 <td>
                    <asp:DropDownList ID="ddlsLinkType" runat="server">
                      <asp:ListItem Value="Text">文本</asp:ListItem>
                      <asp:ListItem Value="Pic">图片</asp:ListItem>
                    </asp:DropDownList>
                 </td>
                 <td>
                     <asp:TextBox ID="SiteUrlTextBox" runat="server" Text='<%# Bind("SiteUrl") %>' />
                 </td>
                 <td>
                     <asp:TextBox ID="LogoUrlTextBox" runat="server" Text='<%# Bind("LogoUrl") %>' />
                 </td>
             </tr>
         </EditItemTemplate>
         <EmptyDataTemplate>
             <table runat="server"
                 style="background-color: #FFFFFF;border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px;">
                 <tr>
                     <td>
                         未返回数据。</td>
                 </tr>
             </table>
         </EmptyDataTemplate>
         <InsertItemTemplate>
             <tr style="">
                 <td>
                     <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" ValidationGroup="Insert" />
                     <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" />
                 </td>
                 <td>
                     <asp:TextBox ID="SeoNoTextBox" ValidationGroup="Insert" runat="server" Text='<%# Bind("SeoNo") %>' />
                     <asp:RequiredFieldValidator ValidationGroup="Insert" ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="SeoNoTextBox">
                     </asp:RequiredFieldValidator>
                     <asp:CompareValidator ValidationGroup="Insert" ID="CompareValidator1" runat="server" ErrorMessage="序号必须为整数" ControlToValidate="SeoNoTextBox" Operator="DataTypeCheck" Type="Integer">
                     </asp:CompareValidator>
                 </td>
                 <td>
                     <asp:TextBox ID="SiteNameTextBox" ValidationGroup="Insert" runat="server" MaxLength="50"
                         Text='<%# Bind("SiteName") %>' />
                     <asp:RequiredFieldValidator ValidationGroup="Insert" ID="RequiredFieldValidator2" runat="server" ErrorMessage="*" ControlToValidate="SiteNameTextBox">
                     </asp:RequiredFieldValidator>
                 </td>
                 <td>
                    <asp:DropDownList ID="ddlsLinkType" ValidationGroup="Insert" runat="server" >
                      <asp:ListItem Value="Text">文本</asp:ListItem>
                      <asp:ListItem Value="Pic">图片</asp:ListItem>
                    </asp:DropDownList>
                 </td>
                 <td>
                     <asp:TextBox ID="SiteUrlTextBox" ValidationGroup="Insert" runat="server" Text='<%# Bind("SiteUrl") %>' />
                     <asp:RequiredFieldValidator ValidationGroup="Insert" ID="RequiredFieldValidator3" runat="server" ErrorMessage="*" ControlToValidate="SiteUrlTextBox">
                     </asp:RequiredFieldValidator>
                 </td>
                 <td>
                     <asp:TextBox ID="LogoUrlTextBox" ValidationGroup="Insert" runat="server" Text='<%# Bind("LogoUrl") %>' />
                 </td>
             </tr>
         </InsertItemTemplate>
         <ItemTemplate>
             <tr style="background-color: #E0FFFF;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="SeoNoLabel" runat="server" Text='<%# Eval("SeoNo") %>' />
                 </td>
                 <td>
                     <asp:Label ID="SiteNameLabel" runat="server" Text='<%# Eval("SiteName") %>' />
                 </td>
                 <td>
                    <asp:DropDownList ID="ddlsLinkType" runat="server" Enabled="false">
                      <asp:ListItem Value="Text">文本</asp:ListItem>
                      <asp:ListItem Value="Pic">图片</asp:ListItem>
                    </asp:DropDownList>
                 </td>
                 <td>
                     <asp:Label ID="SiteUrlLabel" runat="server" Text='<%# Eval("SiteUrl") %>' />
                 </td>
                 <td>
                     <asp:Label ID="LogoUrlLabel" runat="server" Text='<%# Eval("LogoUrl") %>' />
                 </td>
             </tr>
         </ItemTemplate>
         <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: #E0FFFF;color: #333333;">
                                 <th runat="server">
                                 </th>
                                 <th runat="server">
                                     序号</th>
                                 <th runat="server">
                                     网站名称</th>
                                 <th runat="server">
                                     链接类型</th>
                                 <th runat="server">
                                     网站网址</th>
                                 <th runat="server">
                                     logo网址</th>
                             </tr>
                             <tr ID="itemPlaceholder" runat="server">
                             </tr>
                         </table>
                     </td>
                 </tr>
                 <tr runat="server">
                     <td runat="server"
                         style="text-align: center;background-color: #5D7B9D;font-family: Verdana, Arial, Helvetica, sans-serif;color: #FFFFFF">
                         <asp:DataPager ID="DataPager1" runat="server">
                             <Fields>
                                 <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
                                     ShowLastPageButton="True" />
                             </Fields>
                         </asp:DataPager>
                     </td>
                 </tr>
             </table>
         </LayoutTemplate>
     </asp:ListView>
     </form>
 </body>
 </html>

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    ASP编程JSP编程PHP编程.NET编程python编程