EF SqlBulkCopy 批量入库
string connection=ConfigurationManager.ConnectionStrings["DbConn"].ConnectionString;
using System.Data.SqlClient;
using System.Data;
using System.ComponentModel;
{
using ( var bulkCopy = new SqlBulkCopy(connection))
{
bulkCopy.BatchSize = list.Count;
bulkCopy.DestinationTableName = tableName;
var table = new DataTable();
var props = TypeDescriptor.GetProperties( typeof(T))
.Cast<PropertyDescriptor>()
.Where(propertyInfo => propertyInfo.PropertyType.Namespace.Equals( " System "))
.ToArray();
foreach ( var propertyInfo in props)
{
bulkCopy.ColumnMappings.Add(propertyInfo.Name, propertyInfo.Name);
table.Columns.Add(propertyInfo.Name, Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType);
}
var values = new object[props.Length];
foreach ( var item in list)
{
for ( var i = 0; i < values.Length; i++)
{
values[i] = props[i].GetValue(item);
}
table.Rows.Add(values);
}
bulkCopy.WriteToServer(table);
}
}
var imports = new List<sendapientity>();
foreach (JToken phone in phones)
{
SendEntity sendphone = JsonConvert.DeserializeObject<SendEntity>(phone.ToString());
string tphone = sendphone.phone; int sendid = Convert.ToInt32(sendphone.id);
sendapientity s = new sendapientity();
s.UserId = userid;
s.PartnersCode = partnerscode;
s.SendId = sendid;
s.Phone = tphone;
s.Message = msg;
s.SentTime = sendtime;
s.CreateTime = DateTime.Now;
s.BatchId = batchid;
s.Count = count;
imports.Add(s);
}
using (SMMMContext db = new SMMMContext())
{
BulkInsert(db.Database.Connection.ConnectionString, " Send_Api ", imports);
}
public class sendapientity
{
public int UserId { get; set; }
public string PartnersCode { get; set; }
public int SendId { get; set; }
public string Phone { get; set; }
public string Message { get; set; }
public string SentTime { get; set; }
public DateTime CreateTime { get; set; }
public long BatchId { get; set; }
public int Count { get; set; }
}
在JavaScript中推荐的做法是用encodeURI对URI的网址部分编码,用encodeURIComponent对URI中传递的参数进行编码。
在C#中推荐的做法是用Uri.EscapeUriString对URI的网址部分编码,用Uri.EscapeDataString对URI中传递的参数进行编码。
{
if (value >= 0.0)
{
if (value < 2147483647.5)
{
int num = ( int)value;
double num2 = value - num;
if ((num2 > 0.5) || ((num2 == 0.5) && ((num & 1) != 0)))
{
num++;
}
return num;
}
}
else if (value >= - 2147483648.5)
{
int num3 = ( int)value;
double num4 = value - num3;
if ((num4 < - 0.5) || ((num4 == - 0.5) && ((num3 & 1) != 0)))
{
num3--;
}
return num3;
}
throw new OverflowException(Environment.GetResourceString( " Overflow_Int32 "));
}
/// <summary>
/// 绑定评分类型
/// </summary>
/// <param name="RBL"></param>
protected static void BindRadioButtonList(RadioButtonList RBL)
{
RBL.Items.Clear();
Type typ = typeof(CommentType);
foreach ( int i in Enum.GetValues(typ))
{
RBL.Items.Add( new ListItem(Enum.GetName(typ, i), Enum.Format(typ, Enum.Parse(typ, Enum.GetName(typ, i)), " d ")));
RBL.SelectedValue = i.ToString();
}
}
/// <summary>
/// 获取类型名称
/// </summary>
/// <param name="typeid"></param>
/// <returns></returns>
protected static string BindRating( string typeid)
{
string typename = "";
Type typ = typeof(CommentType);
foreach ( int i in Enum.GetValues(typ))
{
if (typeid == Enum.Format(typ, Enum.Parse(typ, Enum.GetName(typ, i)), " d "))
{
typename = Enum.GetName(typ, i);
}
}
return typename;
}
HttpContext.Current.Request.Url.ToString() 不可靠
HttpContext.Current.Request.Url.PathAndQuery 正确
/// 在遍历数据结构的时候,是不可以修改原数据结构的。不然就会抛出错误。
foreach ( string key in new List< string>(_IpAdresses.Keys))
{
_IpAdresses[key]--;
if (_IpAdresses[key] == 0)
_IpAdresses.Remove(key);
}
c# 四舍五入 保留几位小数点
{
CustomerProInfo cp = ahlan.getCustomerProInfoByID(id);
double x = double .Parse((cp.Product.sprice * cp.proValue / 10 ).ToString()); // 两个double相乘结果是double?,所以要强制在转换一次
return ChinaRound(x, 2 ).ToString();
}
// value你要转换的double数据,decimals要保留的小数点
double ChinaRound( double value, int decimals)
{
if (value < 0 )
{
return Math.Round(value + 5 / Math.Pow( 10 , decimals + 1 ), decimals, MidpointRounding.AwayFromZero);
}
else
{
return Math.Round(value, decimals, MidpointRounding.AwayFromZero);
}
}
public class IsPhoneAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string u = filterContext.HttpContext.Request.ServerVariables[ " HTTP_USER_AGENT "];
Regex b = new Regex( @" android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino ", RegexOptions.IgnoreCase | RegexOptions.Multiline);
Regex v = new Regex( @" 1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\- ", RegexOptions.IgnoreCase | RegexOptions.Multiline);
if (!(b.IsMatch(u) || v.IsMatch(u.Substring( 0, 4))))
{
filterContext.Controller.ViewData[ " ErrorMessage "] = " 对不起,请用手机访问! ";
filterContext.Result = new ViewResult()
{
ViewName = " ErrorInfo ",
ViewData = filterContext.Controller.ViewData,
};
}
}
}
发送短信接口
{
try
{
bool result = false;
string strPhones = string.Join( " ; ", destListPhones.ToArray());
strPhones += " ; ";
var encoding = System.Text.Encoding.GetEncoding( " GB2312 ");
string postData = string.Format( " uid=用户名&pwd=密码&mobile={0};&msg={1}&dtime= ", strPhones, msgContent);
byte[] data = encoding.GetBytes(postData);
// 定义 WebRequest
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create( " http://www.smsadmin.cn/smsmarketing/wwwroot/api/post_send/ ");
myRequest.Method = " POST ";
myRequest.ContentType = " application/x-www-form-urlencoded ";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// 发送数据
newStream.Write(data, 0, data.Length);
newStream.Close();
// 得到 Response
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
string content = reader.ReadToEnd();
if (content.Substring( 0, 1) == " 0 ")
result = true;
else
{
if (content.Substring( 0, 1) == " 2 ") // 余额不足
{
// "手机短信余额不足";
// TODO
}
else
{
// 短信发送失败的其他原因,请参看官方API
}
result = false;
}
return result;
}
catch
{
return false;
}
}
很“干净”的调用,没有WebService也没有COM。
唯一要注意的就是编码用 GB2312 否则您收到短信的中文部分都是乱码,另外第10行的用户名和密码被硬编码了,应写在配置文件内。
private static readonly Regex reg_en = new Regex( @" [a-zA-Z]+ " , RegexOptions.Compiled);
private static readonly Regex reg_num = new Regex( @" ^[\-\.\s\d]+$ " , RegexOptions.Compiled);
private static Regex reg_word = null ; // 组合所有屏蔽词的正则
private static Regex GetRegex()
{
if (reg_word == null )
{
reg_word = new Regex(GetPattern(), RegexOptions.Compiled | RegexOptions.IgnoreCase);
}
return reg_word;
}
/// <summary>
/// 检查输入内容是否包含脏词(包含返回true)
/// </summary>
public static bool HasBlockWords( string raw)
{
return GetRegex().Match(raw).Success;
}
/// <summary>
/// 脏词替换成*号
/// </summary>
public static string WordsFilter( string raw)
{
return GetRegex().Replace(raw, " *** " );
}
/// <summary>
/// 获取内容中含有的脏词
/// </summary>
public static IEnumerable < string > GetBlockWords( string raw)
{
foreach (Match mat in reg_word.Matches(raw))
{
yield return (mat.Value);
}
}
private static string GetPattern()
{
StringBuilder patt = new StringBuilder();
string s;
foreach ( string word in GetBlockWords())
{
if (word.Length == 0 ) continue ;
if (word.Length == 1 )
{
patt.AppendFormat( " |({0}) " , word);
}
else if (reg_num.IsMatch(word))
{
patt.AppendFormat( " |({0}) " , word);
}
else if (reg_en.IsMatch(word))
{
s = reg_b.Replace(word, @" (?:[^a-zA-Z]{0,3}) " );
patt.AppendFormat( " |({0}) " , s);
}
else
{
s = reg_b.Replace(word, @" (?:[^\u4e00-\u9fa5]{0,3}) " );
patt.AppendFormat( " |({0}) " , s);
}
}
if (patt.Length > 0 )
{
patt.Remove( 0 , 1 );
}
return patt.ToString();
}
/// <summary>
/// 获取所有脏词
/// </summary>
public static string [] GetBlockWords()
{
return new string []{ " 国民党 " , " fuck " , " 110 " }; // 这里应该从数据库获取
}
这个程序可替换以下内容:
国民党
国-民-党
国o民o党
fuck
f.u.c.k
110(110的变形写法不被替换)
// int double 转换
int goodper;
int badper;
int goodposts = Convert.ToInt32(dr[ " goodpost " ]);
int badposts = Convert.ToInt32(dr[ " badpost " ]);
if (goodposts + badposts == 0 )
{
goodper = badper = 0 ;
}
else
{
int alls = goodposts + badposts;
goodper = Convert.ToInt32(( double )goodposts / alls * 100 );
badper = 100 - goodper;
}
如:
Convert.ToInt32( 4 / 5 * 100 ) = 0
Convert.ToInt32( 4.0 / 5 * 100 ) = 80
// 中英文字符串截取方法
public static string Intercept( string input, int p)
{
Encoding encode = Encoding.GetEncoding( " gb2312 " );
byte [] byteArr = encode.GetBytes(input);
if (byteArr.Length <= p) return input;
int m = 0 , n = 0 ;
foreach ( byte b in byteArr)
{
if (n >= p) break ;
if (b > 127 ) m ++ ; // 重要一步:对前p个字节中的值大于127的字符进行统计
n ++ ;
}
if (m % 2 != 0 ) n = p + 1 ; // 如果非偶:则说明末尾为双字节字符,截取位数加1
return encode.GetString(byteArr, 0 , n);
}
Console.WriteLine(Intercept( " ABC中国人 " , 7 ));
Console.WriteLine(Intercept( " ABCD中国人 " , 7 ));
Console.WriteLine(Intercept( " ABC中D国人 " , 7 ));
/*
测试代码的结果:
ABC中国
ABCD中国
ABC中D国
*/
// kigg 发表于某天某时某分前
public static string Ago( this DateTime target)
{
StringBuilder result = new StringBuilder();
TimeSpan diff = (DateTime.Now - target.ToLocalTime());
if (diff.Days > 0 )
{
result.AppendFormat( " {0} days " , diff.Days);
}
if (diff.Hours > 0 )
{
if (result.Length > 0 )
{
result.Append( " , " );
}
result.AppendFormat( " {0} hours " , diff.Hours);
}
if (diff.Minutes > 0 )
{
if (result.Length > 0 )
{
result.Append( " , " );
}
result.AppendFormat( " {0} minutes " , diff.Minutes);
}
if (result.Length == 0 )
{
result.Append( " few moments " );
}
return result.ToString();
}
}
<% # GetOutTime(Eval( " 发布时间 " )) %>
/// <summary>
///
/// </summary>
/// <param name="dtime"> 发布时间 </param>
/// <returns></returns>
public static string GetOutTime(DateTime dtime)
{
DateTime dt = DateTime.Now;
TimeSpan ts = ((TimeSpan)(dt - dtime));
int days = ts.Days;
int hours = ts.Hours;
int minutes = ts.Minutes;
int milliseconds = ts.Milliseconds;
if (days > 0 ) return string .Format( " 发布于{0}天前 " , days);
if (hours > 0 ) return string .Format( " 发布于{0}小时前 " , hours);
if (minutes > 0 ) return string .Format( " 发布于{0}分钟前 " , minutes);
return string .Format( " 发布于{0}秒前 " , milliseconds);
}
{
var timeSince = DateTime . Now . Subtract ( date ) ;
if ( timeSince . TotalMilliseconds < 1 ) return "not yet" ;
if ( timeSince . TotalMinutes < 1 ) return "just now" ;
if ( timeSince . TotalMinutes < 2 ) return "1 minute ago" ;
if ( timeSince . TotalMinutes < 60 ) return string . Format ( "{0} minutes ago" , timeSince . Minutes ) ;
if ( timeSince . TotalMinutes < 120 ) return "1 hour ago" ;
if ( timeSince . TotalHours < 24 ) return string . Format ( "{0} hours ago" , timeSince . Hours ) ;
if ( timeSince . TotalDays == 1 ) return "yesterday" ;
if ( timeSince . TotalDays < 7 ) return string . Format ( "{0} day(s) ago" , timeSince . Days ) ;
if ( timeSince . TotalDays < 14 ) return "last week" ;
if ( timeSince . TotalDays < 21 ) return "2 weeks ago" ;
if ( timeSince . TotalDays < 28 ) return "3 weeks ago" ;
if ( timeSince . TotalDays < 60 ) return "last month" ;
if ( timeSince . TotalDays < 365 ) return string . Format ( "{0} months ago" , Math . Round ( timeSince . TotalDays / 30 ) ) ;
if ( timeSince . TotalDays < 730 ) return "last year" ;
return string . Format ( "{0} years ago" , Math . Round ( timeSince . TotalDays / 365 ) ) ;
}
DateTime dt = DateTime.Now;
Gengerate g = new Gengerate();
g.GengerateHtml();
DateTime dt2 = DateTime.Now;
TimeSpan ts = dt2.Subtract(dt);
string strTs = ts.TotalSeconds.ToString();
ltGengerate.Text = " 生成成功,生成用时 " + strTs + " 秒! " ;
// ddl点击赋值:
if (DropDownList1.selectedindex >- 1 )
{
DropDownList1.Items[DropDownList1.SelectedIndex].Text = TextBox1.Text;
}
//设置ddl的enabled属性:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id"
OnRowDataBound="GridView1_RowDataBound" >
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow) //一定要
{
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
if (ddl != null)
{
if (ddl.SelectedValue == "1")
{
ddl.Enabled = false;
}
}
}
}
string strPath = Server.MapPath("~/roomindex");
/// <summary>
/// 用递归方法删除文件夹目录及文件
/// </summary>
/// <param name="dir">带文件夹名的路径</param>
public void DeleteFolder(string dir)
{
if (Directory.Exists(dir)) //如果存在这个文件夹删除之
{
foreach (string d in Directory.GetFileSystemEntries(dir))
{
if (File.Exists(d))
File.Delete(d); //直接删除其中的文件
else
DeleteFolder(d); //递归删除子文件夹
}
Directory.Delete(dir, true); //删除已空文件夹
}
}
确保您具有足够的权限 对路径 的访问被拒绝
删除权限设置:
在web.config中的<system.web>下加入<identity impersonate="true"/>
// 根据用户选择的值设置Cookie的保存时间
if ( this .RadioButtonList1.SelectedValue.ToString() == " 1 " ) // 一天
{
this .Response.Cookies[ " UserName " ].Expires = DateTime.Now.AddDays( 1 );
this .Response.Cookies[ " Password " ].Expires = DateTime.Now.AddDays( 1 );
}
if (RadioButtonList1.SelectedValue.ToString() == " 2 " ) // 一个月
{
this .Response.Cookies[ " UserName " ].Expires = DateTime.Now.AddMonths( 1 );
this .Response.Cookies[ " Password " ].Expires = DateTime.Now.AddMonths( 1 );
}
if (RadioButtonList1.SelectedValue.ToString() == " 3 " ) // 半年
{
this .Response.Cookies[ " UserName " ].Expires = DateTime.Now.AddYears( 1 / 2 );
this .Response.Cookies[ " Password " ].Expires = DateTime.Now.AddYears( 1 / 2 );
}
if (RadioButtonList1.SelectedValue.ToString() == " 4 " ) // 一年
{
this .Response.Cookies[ " UserName " ].Expires = DateTime.Now.AddYears( 1 );
this .Response.Cookies[ " Password " ].Expires = DateTime.Now.AddYears( 1 );
}
// 将用户输入的用户名和密码保存到Cookie中
this .Response.Cookies[ " UserName " ].Value = this .tname.Text;
this .Response.Cookies[ " Password " ].Value = this .tpass.Text;
// 跳转到getcookie.aspx页面中显示Cookie中的值
Response.Write( " 用户登录成功!并将用户登录的用户名和密码保存到Cookie中。 " );
}
else
{
Response.Redirect( " Login.aspx " );
}
}
// Attribute:
Response.Write( " 浏览器的信息为:<br> " );
Response.Write( " (1)浏览器= " + Request.Browser.Browser + " <br> " );
Response.Write( " (2)型态= " + Request.Browser.Type + " <br> " );
Response.Write( " (3)名称= " + Request.Browser.Browser + " <br> " );
Response.Write( " (4)版本= " + Request.Browser.Version + " <br> " );
Response.Write( " (5)使用平台= " + Request.Browser.Platform + " <br> " );
Response.Write( " (6)是否为测试版= " + Request.Browser.Beta + " <br> " );
Response.Write( " (7)是否为位的环境= " + Request.Browser.Win16 + " <br> " );
Response.Write( " (8)是否为位的环境= " + Request.Browser.Win32 + " <br> " );
Response.Write( " (9)是否支持框架(Frame)= " + Request.Browser.Frames + " <br> " );
Response.Write( " (10)是否支持表格(Table)= " + Request.Browser.Tables + " <br> " );
Response.Write( " (11)是否支持Cookies= " + Request.Browser.Cookies + " <br> " );
Response.Write( " (12)是否支持ActiveX Controls= " + Request.Browser.ActiveXControls + " <br> " );
string bb = System.Environment.CurrentDirectory.ToString();
Response.Write(bb);
string a = Request.Url.ToString();
string b = Request.Path.ToString();
string c = Request.PhysicalPath.ToString();
Response.Write( " URL地址: " + a + " <br>虚拟路径: " + b + " <br>物理路径: " + c);
string HostName = Server.MachineName.ToString();
Response.Write( " 电脑的名称为: " + HostName)
string path = Server.MapPath( " ~ " ).ToString();
Response.Write( " 物理路径为: " + path);
// 结果:
// 物理路径为:C:\Documents and Settings\itd0300166.PLSH166\桌面\曾祥展\ASP.NET 2.0+SQL Server 2005全程指南\Study_NET\chap05\Server
string Encode = Server.HtmlDecode( " <b>HTML代码中的内容</b> " );
string Decode = Server.HtmlEncode( " <b>HTML代码中的内容</b> " );
Response.Write(Encode + " <br> " + Decode);
结果:
HTML代码中的内容
< b > HTML代码中的内容 </ b >
http://www.cnblogs.com/hun_dan/archive/2011/03/01/1968298.html
/
/// /gridview导出excel
public override void VerifyRenderingInServerForm(Control control)
{
// Confirms that an HtmlForm control is rendered for
}
protected void Button3_Click( object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = false ;
Response.Charset = " GB2312 " ;
Response.AppendHeader( " Content-Disposition " , " attachment;filename=score.xls " );
Response.ContentEncoding = System.Text.Encoding.GetEncoding( " GB2312 " );
Response.ContentType = " application/ms-excel " ;
Response.Write( " <meta http-equiv=Content-Type content=\ " text / html; charset = GB2312\ " > " );
this .EnableViewState = false ;
System.Globalization.CultureInfo str = new System.Globalization.CultureInfo( " ZH-CN " , true );
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(str);
HtmlTextWriter oHtmlTextWriter = new HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
< script language = " javascript " type = " text/javascript " >
// 先获取所有的Checkbox
var chkList = document.getElementsByName( " CheckBox1 " );
window.onload = function()
{
// 为所有checkbox添加onclick事件处理,以自动更新“已选择的项”
for (var i = 0 ; i < chkList.length; i ++ )
{
chkList[i].onclick = chkClick;
}
}
// checkbox的onclick事件,用于更新“已选择的项”
function chkClick()
{
var checkedList = "" ;
// 获取所有被选中的项
for (var i = 0 ; i < chkList.length; i ++ ){
if (chkList[i]. checked )
checkedList += chkList[i].value + " , " ;
}
// 把选中项的列表显示到“已选择的项”中,substring在这里是为了去除最后一个逗号
document.getElementById( " HiddenField1 " ).value = checkedList.substring( 0 ,checkedList.length - 1 );
}
</ script >
string type = HiddenField1.Value;
string [] keyValue = type.Split( ' , ' );
foreach ( string str in keyValue)
{
// 判定是否选中任何一门
string sql1 = " select * from xk where 课程编号=' " + str + " ' " ;
// 遍历 Panel1下的下拉框
foreach (System.Web.UI.Control ddl in Panel1.Controls)
{
if (ddl is DropDownList)
{
DropDownList d = (DropDownList)ddl;
str = str + d.SelectedValue.ToString() + " , " ;
}
}
int j = 0 ;
string [] words = sqlpj.Split( ' , ' );
// TextBox1.Text = sqlpj.Substring(sqlpj.IndexOf(words[20]), sqlpj.Length- sqlpj.IndexOf(words[20]));
TextBox1.Text = sqlpj.Remove( 0 ,sqlpj.IndexOf(words[ 20 ]));
foreach (System.Web.UI.Control ddl in Panel1.Controls)
{
if ( ddl is DropDownList)
{
DropDownList d = (DropDownList)ddl;
d.Text = words[j];
j ++ ;
}
}
// 第二种方法
string [] sqlleft = new string [ 20 ];
string sqlrigth = sqlpj;
for ( int i = 0 ; i < 20 ; i ++ )
{
int dex = sqlpj.IndexOf( ' , ' );
sqlleft[i] = sqlrigth.Substring( 0 , dex);
sqlrigth = sqlrigth.Substring(dex + 1 );
}
TextBox1.Text = sqlrigth;
int j = 0 ;
foreach (System.Web.UI.Control ddl in Panel1.Controls)
{
if (ddl is DropDownList)
{
DropDownList d = (DropDownList)ddl;
d.Text = sqlleft[j];
j ++ ;
}
}
< asp:HyperLinkField DataNavigateUrlFields = " 任课老师 "
DataNavigateUrlFormatString = " Stu_pjtea.aspx?任课老师={0} " HeaderText = " 进入评教 "
NavigateUrl = " Stu_pjtea.aspx " Text = " <font color=red >进入</font> " />
string teaname = Request.QueryString[ " 任课老师 " ].ToString();
//从1,50随机20个不重复数
public int[] GetRandomUnrepeatArray(int minValue, int maxValue, int count)
{
Random rnd = new Random();
int length = maxValue - minValue + 1;
byte[] keys = new byte[length];
rnd.NextBytes(keys);
int[] items = new int[length];
for (int i = 0; i < length; i++)
{
items[i] = i + minValue;
}
Array.Sort(keys, items);
int[] result = new int[count];
Array.Copy(items, result, count);
return result;
}
调用:
int[] a= GetRandomUnrepeatArray(1,100,20);
for (int i = 0; i < a.Length; i++)
{
Response.Write(a[i].ToString()+",");
}
//结果:27,34,44,19,30,67,58,18,26,57,62,16,8,91,100,31,56,85,88,29
/// <summary>
/// 从1到33中任意选取不重复的6个随机数
/// </summary>
/// <returns></returns>
public List<int> GenerateNumber()
{
//用于存放1到33这33个数 . List<int> container = new List<int>(33);
//用于保存返回结果
List<int> result = new List<int>(6);
Random random = new Random();
for (int i = 1; i <= 33; i++)
{
container.Add(i);
}
int index = 0;
int value = 0;
for (int i = 1; i <= 6; i++)
{
//从[0,container.Count)中取一个随机值,保证这个值不会超过container的元素个数
index = random.Next(0, container.Count);
//以随机生成的值作为索引取container中的值
value = container[index];
//将随机取得值的放到结果集合中
result.Add(value);
//从容器集合中删除这个值,这样会导致container.Count发生变化
container.RemoveAt(index);
//注意这一句与上面一句能达到同样效果,但是没有上面一句快
//container.Remove(value);
}
//result.Sort();排序
return result;
}
public int[] GenerateNumber()
{
//用于存放1到33这33个数
int[] container = new int[33];
//用于保存返回结果
int[] result = new int[6];
Random random = new Random();
for (int i = 1; i <= 33; i++)
{
container[i - 1] = i;
}
int index = 0;
int value = 0;
for (int i = 0; i < 6; i++)
{
//从[1,container.Count + 1)中取一个随机值,保证这个值不会超过container的元素个数
index = random.Next(1, container.Length-1-i);
//以随机生成的值作为索引取container中的值
value = container[index];
//将随机取得值的放到结果集合中
result[i]=value;
//将刚刚使用到的从容器集合中移到末尾去
container[index] = container[container.Length - i-1];
//将队列对应的值移到队列中
container[container.Length - i-1] = value;
}
//result.Sort();排序
return result;
}
Random r = new Random(Guid.NewGuid().GetHashCode()); 随机不重复
// Select/Deselect checkboxes based on header checkbox function SelectheaderCheckboxes(headerchk) { // debugger var gvcheck = document.getElementById('rptList'); var i; //Condition to check header checkbox selected or not if that is true checked all checkboxes var checkedList = ""; if (headerchk.checked) { for (i = 0; i < gvcheck.rows.length; i++) { var inputs = gvcheck.rows[i].getElementsByTagName('input'); inputs[0].checked = true; var s=$($(inputs)).next().html(); if (s!==null) { checkedList += s + ","; } document.getElementById("hidvalue").value = checkedList.substring(0, checkedList.length - 1); } } //if condition fails uncheck all checkboxes in gridview else { for (i = 0; i < gvcheck.rows.length; i++) { var inputs = gvcheck.rows[i].getElementsByTagName('input'); inputs[0].checked = false; } document.getElementById("hidvalue").value = ""; } } //function to check header checkbox based on child checkboxes condition function Selectchildcheckboxes(header) { var ck = header; var count = 0; var gvcheck = document.getElementById('rptList'); var headerchk = document.getElementById(header); var rowcount = gvcheck.rows.length; var checkedList = ''; //By using this for loop we will count how many checkboxes has checked for (i = 1; i < gvcheck.rows.length; i++) { var inputs = gvcheck.rows[i].getElementsByTagName('input'); if (inputs[0].checked) { count++; var s = $($(inputs)).next().html(); if (s !== null) { checkedList += s + ","; } } document.getElementById("hidvalue").value = checkedList.substring(0, checkedList.length - 1); } //Condition to check all the checkboxes selected or not if (count == rowcount - 1) { headerchk.checked = true; } else { headerchk.checked = false; } } //先获取所有的Checkbox var chkList = $('#rptList').find(".chkChild input"); window.onload = function () { //为所有checkbox添加onclick事件处理,以自动更新“已选择的项” for (var i = 0; i < chkList.length; i++) { chkList[i].onclick = chkClick; } } //checkbox的onclick事件,用于更新“已选择的项” function chkClick() { var checkedList = ""; //获取所有被选中的项 for (var i = 0; i < chkList.length; i++) { if (chkList[i].checked) // checkedList += chkList[i].value + ","; checkedList += $($(chkList[i])).next().html() + ","; } //把选中项的列表显示到“已选择的项”中,substring在这里是为了去除最后一个逗号 document.getElementById("hidvalue").value = checkedList.substring(0, checkedList.length - 1); }
/// <summary> /// 随机排列数组元素 打乱顺序 调用 string[] newlist = Shuffle(arr); /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Source"></param> public static T[] Shuffle<T>(T[] Source) { if (Source == null) return null; int len = Source.Length;//用變數記會快一點點點 Random rd = new Random(); int r;//記下隨機產生的號碼 T tmp;//暫存用 for (int i = 0; i < len - 1; i++) { r = rd.Next(i, len);//取亂數,範圍從自己到最後,決定要和哪個位置交換,因此也不用跑最後一圈了 if (i == r) continue; tmp = Source[i]; Source[i] = Source[r]; Source[r] = tmp; } return Source; }
本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2009/10/31/1593642.html,如需转载请自行联系原作者