那些琐碎的知识
从来到这个公司也有一年多的时间了,期间与同事一起参与过多个项目,可惜没能善始善终,总是频繁的被调到紧急的项目中。本月底,就要离开了,趁着这段时间整理一下所遇到的小知识点。
1、后台向前台输出js
Page.ClientScript.RegisterStartupScript(GetType(), "confirm", "OpenMessage('framemessage', '提示', '保存成功', 220, 7);", true);
注:OpenMessage为前台js方法。
2、前台调用datepikcker,能选择日期和时间
网上有wdatepicker.js,下载比较方便。
先引用wdatepicker.js
<input type="text" id="txtTime" runat="server" class="Wdate" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" />
3、js获取下拉框中(dropdownList)选中的值
var ddl = document.getElementById("ddlBusCode"); var index = ddl.selectedIndex ; //获取索引 var Value = ddl.options[index].value; //下拉框绑定的value var Text = ddl.options[index].text;//下拉框绑定的文本
4、服务器button,先执行js代码,再执行后台代码的方法
<asp:Button ID="btnCreate" runat="server" onclick="btnCreate_Click" Text="生成试卷" onclientclick=" return SelectOver();"/>
SelectOver是前台的js方法,return false则不会执行后台方法(btnCreate_Click),return true才会执行。
5、Repeater绑定时显示自动编号
<%#Container.ItemIndex+1%>
6、js去除所有空格
str=str.replace(/\s+/g,"");
7、服务器端lable的值,js获取
var fullValue = document.getElementById("lblAllGrade").innerHTML;
8、后台设定textbox为只读
this.txtCName.Attributes.Add("readonly","true");
9、ondblclick双击触发事件
10、js判断用户输入的是不是数字
function IsNum(ts) { var reNum = /^\d*$/; var res = reNum.test(ts.value); if (!res) { //不为数字 alert("请输入正确的数字格式"); ts.value= ""; ts.focus(); } }
11、父页面点击弹出一个子页面之后,子页面如何向父页面传值
父页面代码:
window.showModalDialog("SelectOperator.aspx?isOne=y" + str, window, "dialogwidth:400px;dialogheight:280px;center:yes;status:no;scroll:yes;help:no"); //导向页面
function onCallback(strValue, strText, strBMValue) {………… }//接收返回值结果方法
子页面代码:
//--向父窗口通报被单击的树节点信息,window.dialogArguments指向父窗口对象 window.dialogArguments.onCallback(strValue, strText, strBMValue);//调用父页面方法传值 window.close(); //关闭子页面窗口
12、获取当前页面上的所有被选中的标签
function SelectOver() { var allnum = '';//选中的题号 var allobj = document.getElementsByTagName("input"); var numnull = 0;//选中的数量 for (var i = 0; i < allobj.length; i++) { if (allobj[i].checked) { numnull++; allnum += allobj[i].value+","; } } if(document.getElementById("HiddenField1").value=="" && numnull == 0){ alert("您没有选中任何题目!");
} else { //alert("选中的题号为:" + allnum.substr(0, allnum.length - 1)); document.getElementById("HiddenField1").value =document.getElementById("HiddenField1").value+ allnum.substr(0, allnum.length); } }
13、地址栏传值 有汉字,则用escape(text)
xhr.open("GET", "DoAjax.ashx?xm=" + escape(zrText), true);
14、jQuery的异步请求
① $.ajax({ type: "POST", url: "some.php", data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); } }); ② $.get("test.cgi", { name: "John", time: "2pm" }, function(data){ alert("Data Loaded: " + data); });
15、后台绑定下拉框
private void BindRoleList() { DataTable dt = new DataTable(); try { ddlRoleType.Items.Clear(); dt = new BLL.Sys_Role().GetList(" ").Tables[0]; ddlRoleType.Items.Add(new ListItem("请选择角色", "")); foreach (DataRow dr in dt.Select("")) { ddlRoleType.Items.Add(new ListItem(dr["MC"].ToString(), dr["JSID"].ToString())); } } catch { } finally { dt.Clear(); dt.Dispose(); } }
16、Repeater的嵌套绑定
前台代码:
<asp:Repeater ID="RepeaterTopic" runat="server" onitemdatabound="RepeaterTopic_ItemDataBound"> <ItemTemplate> <div id="dvContent" style="width:99%;height:100%;background-color:#DBEBF8"> <%#Container.ItemIndex+1%>、<%#Eval("topicContent")%> <asp:Repeater ID="RepeaterSelect" runat="server"> <ItemTemplate> <li style="float:left"> <input type="radio" name="rad_<%#Eval("fid")%>" value="单选" id="rad_<%#Eval("id")%>" class="radio1" /> <%#Eval("topicOptions")%>
</li> </ItemTemplate> </asp:Repeater> </div> </ItemTemplate> </asp:Repeater>
后台代码:
protected void RepeaterTopic_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { //找到大分类下的小分类 Repeater rptChild = e.Item.FindControl("RepeaterSelect") as Repeater;//找到里层的repeater对象 //找到父级Repeater关联的数据项 DataRowView rowv = (DataRowView)e.Item.DataItem; //提取父级分类名称 string CategorieId = rowv["id"].ToString(); //根据分类ID查询该分类下的产品,并绑定产品Repeater rptChild.DataSource = bll_Questions.GetList("fid=" + CategorieId); rptChild.DataBind(); } }
17、js改变选中行的颜色
<tr class="lb_bg2" onclick="ChangeColor(this)" function ChangeColor(obj) { var rows = document.getElementById("tab").rows; for (var i = 0; i < rows.length; i++) { rows[i].style.backgroundColor = ""; } obj.style.backgroundColor = "#9DD8F7"; }