那些琐碎的知识

  从来到这个公司也有一年多的时间了,期间与同事一起参与过多个项目,可惜没能善始善终,总是频繁的被调到紧急的项目中。本月底,就要离开了,趁着这段时间整理一下所遇到的小知识点。

  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";
}

 

posted @ 2014-02-20 10:29  后知然后觉  阅读(377)  评论(2编辑  收藏  举报