.NET的一些笔记,自己记录一下

<%: Html.Label("单据名称:") %>
表示Label控件与此input关联,点击label时会触发此控件 <input type="text" name="SocSecNum" id="单据名称:" />

现在空闲的
xianzaikongxian

接单最少的
jiedanzhuishao

维修次数最多的
weixiucishu

维修时间最短的
shijianzuidaun

年龄最小的
nianlingzuixiao

还有重复的话就依次从上到下取

UpdateMode="Conditional" ChildrenAsTriggers="false"

 

 


<%
if(Detil!=null&&Detil.Rows.Count!=0)
{
for(var n=0;n<Detil.Rows.Count;n++)
{ %>
document.getElementById("List").innerHTML+='<li>'+'<% =Detil.Rows[n]["Name"]%>'+'</li>';
<%
if(DetilChild!=null&&DetilChild.Rows.Count!=0)
{
for(var p=0;p<DetilChild.Rows.Count;p++)
{ %>
document.getElementById("List").innerHTML+='<li>'+'<% =DetilChild.Rows[p]["Name"]%>'+'</li>';
<% }
}%>
<% }
}%>

 

 

 

 

 

 


<%
if (Detil != null && Detil.Rows.Count != 0)
{
for (int i = 0; i < Detil.Rows.Count; i++)
{ %>
<li id="kkk"><strong><%=Detil.Rows[i]["Name"]%></strong></li>
<%}
} %>

 

 

 

 

 

table==null 只是判断有没有实例化,并不能作为是否为空表的依据,要用table.rows.count>0。


MFC拼凑sql语句方法
sql_insert.Format(_T("insert into userinfo(name) values (\'%s\');"), name);
std::string s= CStringA(sql_insert);
const char *ch = s.c_str();

MFC获取其他页面控件方法
CMCFStudentDlg* pWnd = (CMCFStudentDlg*)GetParent();
CListCtrl *pList=(CListCtrl *)pWnd->GetDlgItem(IDC_LIST1);
UpdateData(TRUE);


遍历MAP
map<CString,SOCKADDR_IN>::iterator it;
it = Person.begin();
while(it != Person.end())
{
it ++;
m_combo.AddString(it->first);
}


分割字符串
int main(void)
{
char str[] = "2015-3-22,abcd,efg,hij,klmn,opq,rst,uvw,xyz,tao";/*待分隔的原字符串*/
char seg[] = ","; /*分隔符这里为逗号comma,分隔符可以为你指定的,如分号,空格等*/
char charlist[50][50]={""};/*指定分隔后子字符串存储的位置,这里定义二维字符串数组*/
int i =0;
char *substr= strtok(str, seg);/*利用现成的分割函数,substr为分割出来的子字符串*/

while (substr != NULL) {
strcpy(charlist[i],substr);/*把新分割出来的子字符串substr拷贝到要存储的charlsit中*/
i++;
printf("%s\n", substr);
substr = strtok(NULL,seg);/*在第一次调用时,strtok()必需给予参数str字符串,
往后的调用则将参数str设置成NULL。每次调用成功则返回被分割出片段的指针。*/
}
getchar();/*press enter key to continue*/
return 0;
}

 


构造函数:
函数名与类名相同,在调用类时会直接默认使用构造函数初始化参数,即使不写构造函数,系统也会默认给你一个构造函数(类中有虚拟成员,类中有基类有构造函数,静态成员有构造函数)


构造类时,如果传入参数与类中参数的参数名相同,则指定类中参数时使用this->x


C++可接受多继承
class A:public B,public C{ }

虚函数
virtual void breath()
{ }
C++在编译的时候不绑定breath,会在具体调用的时候确定调用那个方法,如果不加声明,便会在编译时进行绑定方法。在C++中加上virtual 来实现多态,在基类中方法上加virtual,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的方法。


纯虚函数
virtual void breathe()=0
不实现方法,只是声明。当有派生类继承时需要实现纯虚函数,否则派生类也只能当做抽象类,不能被实例化


覆盖和隐藏
覆盖:函数名相同,参数也相同,函数为虚函数。创建实例对象时,便会把虚函数绑定到实力类中的函数
隐藏:函数不为虚函数,只要函数名相同或者参数也相同,便会隐藏。再派生类中实现基类内被隐藏的函数 基类名::函数名(参数)
函数的重载发生在同一个类中。


int a=3;
int &b=a;
int c=5;
b=c;
则此时a和b值为5;此时a的值也就代表b的值。
int a=3;
int *b=&a;
则此时b为a的储存地址,即指针,此时再改变b的值也就是改变指针的值,a的值不会改变。


解决头文件重复定义
在animal.h中添加如下语句
#ifndef ANIMAL_H_H
#define ANIMAL_H_H

 

static SOCKADDR_IN addrSrv = Person[strCBText];

 

HWND hWnd = (HWND)FindWindow(NULL,窗口名字);//根据窗口名字Caption获取窗口句柄
C***Dialog* pWnd= (C***Dialog*)C***Dialog::FromHandle(hWnd); //由句柄得到对话框的对象指针
pWnd->xxx( ); //调用C***Dialog中的函数xxx();
HWND hwnd = pWnd->GetSafeHwnd(); // 取得控件的句柄


Edit Control
获取指针
pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);
赋值
pBoxOne-> SetWindowText( _T("FOO ") );
取值
pBoxOne-> GetWindowText(str);


C++全局变量
.h文件中加
extern CString ToMessage;
.cpp文件中加
CString strCBText;
同一项目下其他文件引用加
.h文件和extern CString strCBText;声明变量

 

弹出框搜索修改
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
function search() {
var texts = document.getElementById("pho").value;
var Company = "{'phoID':'" + texts + "'}";
$.ajax({
// async: false,
type: "post",
url: "TaskManagementAdd.aspx/search",
data: Company,
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function e(msg) {
var mytab = document.getElementById("table");
var rowNum = mytab.rows.length;

for (var i = 1; i < rowNum; i++) {
mytab.deleteRow(i);
rowNum = rowNum - 1;
i = i - 1;
}
var word = msg.d.split(";");
if (msg.d.split(",").length > 2) {
for (var tt = 0; tt < word.length; tt++) {
var words = word[tt].split(",");
var tabRow = mytab.insertRow(tt + 1);
tabRow.setAttribute("style", "text-align: center");
tabRow.insertCell(0).innerHTML = '<tr style="text-align: center" ><td><input id="' + words[2] + '" name="User" type="radio" /></td>';
tabRow.insertCell(1).innerHTML = '<td >' + words[0] + '</td>';
tabRow.insertCell(2).innerHTML = '<td >' + words[1] + '</td>';
}
}
else {
var words = msg.d.split(",");
var tabRow = mytab.insertRow(1);
tabRow.setAttribute("style", "text-align: center");
tabRow.insertCell(0).innerHTML = '<td><input id="' + words[2] + '" name="User" type="radio" /></td>';
tabRow.insertCell(1).innerHTML = '<td >' + words[0] + '</td>';
tabRow.insertCell(2).innerHTML = '<td >' + words[1] + '</td> </tr>';
}
// mytab.rows[0].cells[0].innerHTML = msg.d;
},
error: function (xhr) { alert('页面出错\n\n' + xhr.responseText); }
});
}

 

获取弹出框选中的值
function sub() {
var s = '';
var obj = document.getElementsByName('User');
for (var i = 0; i < obj.length; i++) {
if (obj[i].checked)
{ s = obj[i].id; }
}
var Name = $("#" + s).parent().next().text();
var Phone = $("#" + s).parent().next().next().text();
document.getElementById("TUser").value = Name;
}

 

js获取select标签选中的值
var obj = document.getElementByIdx_x(”testSelect”); //定位id
var index = obj.selectedIndex; // 选中索引
var text = obj.options[index].text; // 选中文本
var value = obj.options[index].value; // 选中值
jQuery中获得选中select值

第一种方式
$('#testSelect option:selected').text();//选中的文本
$('#testSelect option:selected') .val();//选中的值
$("#testSelect ").get(0).selectedIndex;//索引

第二种方式
$("#tesetSelect").find("option:selected").text();//选中的文本
…….val();
…….get(0).selectedIndex;

 

弹出框不好用
ScriptManager.RegisterStartupScript(this, this.GetType(), "", "alert('账户余额不足');", true);
后台隐藏某个元素
ScriptManager.RegisterStartupScript(this, this.GetType(), "", "$(function () { $(\".qbm-notice\").css(\"display\", \"none\");})", true);


数据库不能识别汉字,在设置连接字符串时最后加上:Charset=utf8


如何在自定义类中使用ASP.NET的Request,server 等对象:
加命名空间(可能需要在项目中先加引用,再在类中如下引用)
using System.Web.SessionState;
HttpContext.Current.Session["TotalPage"].ToString();
HttpContext.Current.Request.QueryString["cid"].ToString();

 


ajax的使用


界面上必须引用jquery.min.js
<script type="text/javascript">
function Sub(){
// $(document).click(function (e) {
// var name=$(e.target).parent().prev().prev().prev().prev().prev().prev().prev().text();
// var p = $(e.target).attr("id");
var p = 'u';
var params = '{IP:"' + p + '"}';
// var params = '{name1:"' + name + '",phone1:"' + phone + '"}';
$.ajax({
type: "post",
url: "Phone.aspx/Submit",
data: params,
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function e() {
// shanchu.remove();
alert("操作成功!");
},
error: function () { alert("llll"); }
});
// })
}
</script>

 

由后台返回的值分割
success: function e(msg) {
var Name = document.getElementById("StuName");
var strs = msg.d.split(";"); //字符分割
for (var i = 0; i < strs.length; i++) {
if (strs[i] != "") {
Name.innerHTML += '<li class=\"flex bd-lis\" ><section class=\"iconfont icon-yuanxingweixuanzhong bd-a\"></section><section class=\"bd-b\"></section><section class=\"bd-c\">' + strs[i].toString() + '</section><section class=\"bd-d iconfont icon-xiangyou1\"></section></li>';
}
}
},
error: function () { alert("llll"); }

 

后台


[System.Web.Services.WebMethod()]
public static void Submit(string IP)
{

}

 


获取当前click事件元素的id:
$(".bl").click(function (e) {
window.location.href = "NoticeDetil.aspx?ID=" + $(this).attr("id");
})

 

预加载修改页面

$(function(){
var Detile='<%=NoticeDeilStr%>';
var strs = Detile.split(";");
$("#NoticeType").append(strs[0]);
$("#NoticeTitle").html(strs[1]);
$("#StartTime").html(strs[2]);
$("#OverTime").html(strs[3]);
$("#StopTime").html(strs[4]);
$("#NoticeContent").html(strs[5]);
})

 

当需要多个表的信息时,不必要分多次查询,可以使用左右或内连接将数据放在一起。
SELECT t1.ID,t2.ID as PP,t1.phone as tt FROM ((select * from `user` where ID='ee') t1 LEFT JOIN (select * from `user` where roleID ='1') t2 on t1.classID=t2.classID)

 


传递点击对象:

onclick="Sub(this)"

接收:function Sub(obj) {
var p = $(obj).prev().attr("id");
}

 

Ajax按钮跳转时,只能用button属性,不要用submit

 

C# 中的cookies


设置
HttpCookie cookie = new HttpCookie("cookieName");
cookie.Value = "name1"
HttpContext.Current.Response.Cookies.Add(cookie);
HttpContext.Current.Response.AppendCookie(cookie);
读取
HttpContext.Current.Request.Cookies["cookieName"].Value
判断存在
if(HttpContext.Current.Request.Cookies["cookieName"]==null){
//do something
}
有效期
cookie.Expires = DateTime.Now.AddDays(1);


获取dropdownlist选中的值
ddlBranch.SelectedValue;
获取dropdownlist选中的文本
ddlCurrentDegree.SelectedItem.Text;

 

<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>

 

 

 

 

 

获取XML节点值
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(jsonText);
//获取节点列表
XmlNodeList topM = xmldoc.ChildNodes;
foreach (XmlElement element in topM)
{
id = element.GetElementsByTagName("prepay_id")[0].InnerText;
sig = element.GetElementsByTagName("sign")[0].InnerText;
nonce_str = element.GetElementsByTagName("nonce_str")[0].InnerText;
}

 


在子元素中防止触发父元素点击事件

event.stopPropagation(); //阻止事件冒泡即可

 

 


显示全屏
HTML:

<div class="over"></div><!--背景层-->
<div class="logoImg amplifyImg"><!--注意:此处的amlifyImg不可少-->
<img src="imgSrc"/>
</div>


CSS:
.over {position: fixed; left:0; top:0; width:100%; z-index:100;}
.tempContainer {position:fixed; width:100%; margin-right:0px; margin-left:0px; text-align:center; z-index:101;}


JS:
var imgsObj = $('.amplifyImg img');//需要放大的图像
if(imgsObj){
$.each(imgsObj,function(){
$(this).click(function(){
var currImg = $(this);
coverLayer(1);
var tempContainer = $('<div class="tempContainer"></div>');//图片容器
with(tempContainer){//width方法等同于$(this)
appendTo("body");
var windowWidth=$(window).width();
var windowHeight=$(window).height();
//获取图片原始宽度、高度
var orignImg = new Image();
orignImg.src =currImg.attr("src") ;
var currImgWidth= orignImg.width;
var currImgHeight = orignImg.height;
if(currImgWidth<windowWidth){//为了让图片不失真,当图片宽度较小的时候,保留原图
if(currImgHeight<windowHeight){
var topHeight=(windowHeight-currImgHeight)/2;
if(topHeight>35){/*此处为了使图片高度上居中显示在整个手机屏幕中:因为在android,ios的微信中会有一个title导航,35为title导航的高度*/
topHeight=topHeight-35;
css('top',topHeight);
}else{
css('top',0);
}
html('<img border=0 src=' + currImg.attr('src') + '>');
}else{
css('top',0);
html('<img border=0 src=' + currImg.attr('src') + ' height='+windowHeight+'>');
}
}else{
var currImgChangeHeight=(currImgHeight*windowWidth)/currImgWidth;
if(currImgChangeHeight<windowHeight){
var topHeight=(windowHeight-currImgChangeHeight)/2;
if(topHeight>35){
topHeight=topHeight-35;
css('top',topHeight);
}else{
css('top',0);
}
html('<img border=0 src=' + currImg.attr('src') + ' width='+windowWidth+';>');
}else{
css('top',0);
html('<img border=0 src=' + currImg.attr('src') + ' width='+windowWidth+'; height='+windowHeight+'>');
}
}
}
tempContainer.click(function(){
$(this).remove();
coverLayer(0);
});
});
});
}
else{
return false;
}
//使用禁用蒙层效果
function coverLayer(tag){
with($('.over')){
if(tag==1){
css('height',$(document).height());
css('display','block');
css('opacity',1);
css("background-color","#191919");
}
else{
css('display','none');
}
}
}

 

写入前台js

StringBuilder sb = new StringBuilder();
sb.Append("<script src=\"js/jquery-weui.js\"></script>;");
ClientScript.RegisterStartupScript(this.GetType(), "LoadPicScript", sb.ToString());

 

 

 


苹果微信返回不重新加载js


<input type="hidden" id="refreshed" value="no">


if ((/iphone|ipod|ipad.*os 5/gi).test(navigator.appVersion)) {

window.onpageshow = function (event) {

if (event.persisted) {

window.location.reload()

}

};

} else {

onload = function () {

var refreshedId = document.getElementById("refreshed");

if (refreshedId.value == "no") {

refreshedId.value = "yes";

} else {

refreshedId.value = "no";

location.reload();

}

}

}

 

服务器控件添加前台JS事件


Button1.Attributes.Add("OnClick", "return load()");
函数返回true则继续执行后台点击事件
函数返回false则只执行前台JS事件

posted on 2018-05-15 11:33  勤学才是王道  阅读(270)  评论(0编辑  收藏  举报

导航