近来开发的所学到的如下:

0、jQuery与Autocomplete插件
1.1、将枚举转为string[]
private enum MyEnum
{A,B,C}
string[] var = Enum.GetNames(typeof(MyEnum)); // "A""B""C"的数组
string var2 = MyEnum.A.ToString(); //"A"
1.2、将string[]转成enum

Aircraft air = (Aircraft) Enum.Parse(typeof(Aircraft), "A,B,C", true); 


2、自定义控件之下拉式属性显示:

[TypeConverter(typeof(ModuleConverter))]
public string Module{get{}set{}}

 

#region TypeConverter
    
public class DataSourceTypeConverter : StringConverter
    {
        StandardValuesCollection theValue 
= new StandardValuesCollection(Enum.GetNames(typeof(Enums.EnumDataSource)));

        
//这一个override说明要用下拉列表编辑属性 
        public override bool GetStandardValuesSupported(ITypeDescriptorContext context)
        {
            
return true;
        }
        
//这个override返回下拉列表项
        public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
        {
            
return theValue;
        }
        
//return ture的话属性只能选,return false 属性可选可填 
        public override bool GetStandardValuesExclusive(ITypeDescriptorContext context)
        {
            
return true;
        }
    }

4、判断字符串拼接成的方法名是否存在
//一般来说 if (typeof(functionName) == "function") 就可,若是拼接成的呢?
//
在IE和FF下试过均OK
if ("functionName"in Window) {}

5、Javascript格式化字符串的方法(有修改)

var format = function (number, form) {
    
var forms = form.split('.'), number = '' + number, numbers = number.split('.')
        , leftnumber 
= numbers[0].split('')
        , exec 
= function (lastMatch) {
            
if (lastMatch == '0' || lastMatch == '#') {
                
if (leftnumber.length) {
                    
return leftnumber.pop();
                } 
else if (lastMatch == '0') {
                    
return lastMatch;
                } 
else {
                    
return '';
                }
            } 
else {
                
return lastMatch;
            }
    }, string

    string 
= forms[0].split('').reverse().join('').replace(/./g, exec).split('').reverse().join('');
    string 
= leftnumber.join(''+ string;

    
if (forms[1&& forms[1].length) {
        leftnumber 
= (numbers[1&& numbers[1].length) ? numbers[1].split('').reverse() : [];
        string 
+= '.' + forms[1].replace(/./g, exec);
    }
    
var ret = string.replace(/\.$/'');

    
//Modified, debugger;
    var i = 0;
    
var j = 0;
    
while (i == 0 && j<10){
        j
++;
        i 
= ret.indexOf(',');
        ret 
= ret.substring(i+1,ret.length);
        i 
= ret.indexOf(',');
    }
    
return ret;
};
// 使用时 format("12345678901","###,###,###,###,###,###.00");

<script language="javascript" type="text/javascript" src="../Js/StringFormat.js"></script>
<script language="javascript" type="text/javascript">
function $(value) { return document.getElementById(value);}
function CalculateTotal(){
    
var fmt = "###,###,###,###,###,###.00";
    
var gridID = "<%=POReleaseGridView.ClientID %>";
    
var lblGrandTotal = $("ClientSpan");
    
var tblPO = $(gridID);
    
var rowCount = tblPO.rows.length;

    
// ctl00_mdcmContentPlaceHolder_POReleaseGridView_ctl02_QtyTextBox
    // ctl00_mdcmContentPlaceHolder_POReleaseGridView_ctl02_UsePremiumRadioButtonList_0

    
var rowID = "";
    
var Qty;
    
var UnitPrice;
    
var PreCharge;

    
var cbPremiumYes;
    
var cbPremiumNo;
    
var lblTotal;

    
var calTotal = 0;

    
// formula:
    // if preCharge enabled and if preCharge larger than 100: ( qty * price ) * ( preCharge / 100 );
    // else qty * price
    for (var i = 0; i < rowCount; i++){
        rowID 
= gridID + "_ctl" + ((i <= 9)? "0" + i : i);
        
if (i < 2 || i >= rowCount) {continue;}

        
// Get the controls relavent with total
        Qty = getNum($(rowID + "_QtyTextBox"));
        UnitPrice 
= getNum($(rowID + "_unitPriceTextBox"));
        PreCharge 
= getNum($(rowID + "_PremiumTextBox"));

        lblPreCharge 
= $(rowID + "_PremiumTextBox");
        cbPremiumYes 
= $(rowID + "_UsePremiumRadioButtonList_0");
        cbPremiumNo 
= $(rowID + "_UsePremiumRadioButtonList_1");

        lblTotal 
= $(rowID + "_TotalLabel");

        
// ===
        var tmp = Qty * UnitPrice;
        
if (cbPremiumYes.checked && PreCharge > 100){
            tmp 
= tmp * (PreCharge / 100);
        }

        lblTotal.innerHTML 
= format(tmp, fmt);
        calTotal 
+= tmp;
     }

     lblGrandTotal.innerHTML 
= format(calTotal, fmt);
}

function getNum(ctrl){
    
return (ctrl.value == "" ? 0 : parseFloat(ctrl.value));
}
</script>

相关文章:

  • 2021-12-29
  • 2021-07-12
  • 2021-09-01
  • 2021-09-25
  • 2021-09-20
  • 2021-11-13
  • 2021-08-30
  • 2021-09-10
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-30
  • 2021-07-30
  • 2021-09-06
  • 2021-12-31
  • 2022-12-23
相关资源
相似解决方案