母版页的后台
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.IO;
public partial class MainMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ArrayList fileName = new ArrayList();
fileName = GetImgName();
this.ddl_face.DataSource = fileName;
this.ddl_face.DataBind();
this.img_face.ImageUrl = "~/Images/Face/" + fileName[this.ddl_face.SelectedIndex].ToString();
}
}
private ArrayList GetImgName()
{
ArrayList names = new ArrayList();
string[] filePath = Directory.GetFiles(Request.PhysicalApplicationPath + @"Images\Face");//获取头像目录中所有的文件
for (int i = 0; i < filePath.Length; i++)
{
string lastNameTemp = Path.GetExtension(filePath[i]);
if (lastNameTemp.Equals(".png") || lastNameTemp.Equals(".jpg") || lastNameTemp.Equals(".gif") || lastNameTemp.Equals(".bmp"))
{
string[] nameTemp = filePath[i].Split('\\');
names.Add(nameTemp[nameTemp.Length - 1]);
}
}
return names;
}
protected void ddl_face_SelectedIndexChanged(object sender, EventArgs e)
{
ArrayList fileName = new ArrayList();
fileName = GetImgName();
this.img_face.ImageUrl = "~/Images/Face/" + fileName[this.ddl_face.SelectedIndex].ToString();
}
}
asp.net 前台页面:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMaster.master.cs" Inherits="MainMaster" %>
<%@ Register Assembly="AjaxControlToolkit, Version=3.0.20229.20843, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e"
Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!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">
<link href="./App_Themes/MainMaster/MainMaster.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
<script type="text/javascript">
function cancleShow()
{ }
</script>
</head>
<body>
<form id="MainForm" runat="server">
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<div id="main">
<table id="top">
<tr>
<td></td>
<td class="regText"><asp:LinkButton ID="lbtn_reg" runat="server">加入我们</asp:LinkButton></td>
</tr>
<tr>
<td colspan="2" class="logo"><a href="Index.aspx"><img src="./Images/logo.jpg" alt="LOGO" /></a></td>
</tr>
<tr>
<td><div class="menuEmpyt"></div></td>
<td>
<myControl:menu runat="server" ID="menu"/>
</td>
</tr>
</table>
<asp:ContentPlaceHolder id="content" runat="server">
</asp:ContentPlaceHolder>
</div>
<!--用户注册浮动窗口开始-->
<asp:Panel ID="Panel1" runat="server" BackImageUrl="~/Images/floatBG.png">
<div id="childMain">
<table width="650px">
<tr>
<td>
<div class="topEmpty"></div>
</td>
</tr>
<tr>
<td colspan="3">
<div id="closeBtn_reg">
<asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/Images/CloseBtn.png" />
</div>
<div id="title_REG">请在此录入信息以便及加入我们</div>
</td>
</tr>
<tr height="55px">
<td width="80px">
<div class="username">用户名:</div>
</td>
<td width="120px" align="left">
<asp:TextBox ID="TextBox1" Width="270px" runat="server" BackColor="#eef2a9"></asp:TextBox>
</td>
<td align="left" >
<div class="usernameTest">*必填,大于4位小于12位。</div>
</td>
</tr>
<tr height="55px">
<td><div class="name">姓名:</div></td>
<td align="left">
<asp:TextBox ID="txt_name" Width="270px" runat="server" BackColor="#eef2a9" ></asp:TextBox>
</td>
<td align="left" ><div class="nameTest">*必填,请填写真实姓名。</div></td>
</tr>
<tr height="55px">
<td><div class="sex">性别:</div></td>
<td align="left" >
<asp:RadioButton ID="rbtn_w" runat="server" Text="男" GroupName="sex" />
<asp:RadioButton ID="rbtn_m" runat="server" Text="女" GroupName="sex" />
</td>
<td align="left" ><div class="sexTest">*必选,请选择您的真实性别。</div></td>
</tr>
<tr height="55px">
<td><div class="mail">E-mail:</div></td>
<td align="left" >
<asp:TextBox ID="txt_mail" Width="270px" runat="server" BackColor="#eef2a9" ></asp:TextBox>
</td>
<td align="left" ><div class="mailTest">*必填,为方便与您联系,请填写真实有效的邮箱。</div></td>
</tr>
<tr height="40px">
<td><div class="face">头像:</div></td>
<td align="left" >
<div>
<asp:DropDownList ID="ddl_face" runat="server" BackColor="#eef2a9" AutoPostBack="True"
align="left" onselectedindexchanged="ddl_face_SelectedIndexChanged"></asp:DropDownList>
</div>
<div class="faceImg">
<asp:Image ID="img_face" runat="server" Width="80px" Height="80px" />
</div>
</td>
<td align="left" >
<div class="faceTest">请选择您喜欢的头像。</div>
<div class="submitBtn">
<asp:ImageButton ID="ibtn_submit" runat="server" ImageUrl="~/Images/SubmitBtn.png" />
</div>
</td>
</tr>
</table>
</div>
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender2"
runat="server"
TargetControlID="lbtn_reg"
DisplayModalPopupID="ModalPopupExtender2"
OnClientCancel="cancleShow">
</cc1:ConfirmButtonExtender>
<cc1:ModalPopupExtender ID="ModalPopupExtender2"
runat="server"
TargetControlID="lbtn_reg"
PopupControlID="Panel1"
OkControlID="ibtn_submit"
CancelControlID="ImageButton2">
</cc1:ModalPopupExtender>
<cc1:DragPanelExtender ID="DragPanelExtender2"
runat="server"
TargetControlID="Panel1"
DragHandleID="Panel1">
</cc1:DragPanelExtender>
</asp:Panel>
<!--用户注册浮动窗口结束-->
</form>
</body>
</html>
4 个解决方案
#1
看起来你缺乏工程经验。做工程的人不像一些学生,动不动推到重来总是重复写代码。既然你在用户控件中做好了,那么就应该把用户控件放到master page中,调用者通过用户控件的接口与之通讯,而不是去在master page上重复去写什么东西。
#2
“应为无法获得自定义控件上的按钮”
有两类解决方式:
一:如果你的用户控件确实需要暴露控件,写
二:实际上控件应该封装控件实现,而是仅仅提供数据属性用来通讯。用户控件内部到底是用什么表现层来实现它的数据接口的,这不需要暴露给调用者。
有两类解决方式:
一:如果你的用户控件确实需要暴露控件,写
public Button 你要的按钮
{
get{
EnsureChildControl();
return this.theButton1;
}
}
二:实际上控件应该封装控件实现,而是仅仅提供数据属性用来通讯。用户控件内部到底是用什么表现层来实现它的数据接口的,这不需要暴露给调用者。
#3
感谢楼上的批评,我确实没有工作经验,我还是学生。但我相信没有多少人会喜欢重复的做同一件事情,但是,我实在是找不到怎么解决这个问题,我希望把这个页面浮动起来,但是在用户控件中,我在母版页无法得到提交按钮,而在用户控件中我又无法浮动,所以我不知道该怎么解决。
#4
谢谢,sp1234,的指导,我又明白了一个知识点……
#1
看起来你缺乏工程经验。做工程的人不像一些学生,动不动推到重来总是重复写代码。既然你在用户控件中做好了,那么就应该把用户控件放到master page中,调用者通过用户控件的接口与之通讯,而不是去在master page上重复去写什么东西。
#2
“应为无法获得自定义控件上的按钮”
有两类解决方式:
一:如果你的用户控件确实需要暴露控件,写
二:实际上控件应该封装控件实现,而是仅仅提供数据属性用来通讯。用户控件内部到底是用什么表现层来实现它的数据接口的,这不需要暴露给调用者。
有两类解决方式:
一:如果你的用户控件确实需要暴露控件,写
public Button 你要的按钮
{
get{
EnsureChildControl();
return this.theButton1;
}
}
二:实际上控件应该封装控件实现,而是仅仅提供数据属性用来通讯。用户控件内部到底是用什么表现层来实现它的数据接口的,这不需要暴露给调用者。
#3
感谢楼上的批评,我确实没有工作经验,我还是学生。但我相信没有多少人会喜欢重复的做同一件事情,但是,我实在是找不到怎么解决这个问题,我希望把这个页面浮动起来,但是在用户控件中,我在母版页无法得到提交按钮,而在用户控件中我又无法浮动,所以我不知道该怎么解决。
#4
谢谢,sp1234,的指导,我又明白了一个知识点……