运吧司机版param state errorerror

打开3DMAX,出现error loading paramBlock2怎么办_3dmax吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:189,002贴子:
打开3DMAX,出现error loading paramBlock2怎么办收藏
看见网上的解释都不给力,我自己的找到了个办法在自动保存的文件我的文档\3dsmax\autoback里会生成一个maxback.bak文件,相信大家对bak都清楚吧,改成MAX后缀,打不开的模型就回来了..
嗯 这个确实是个好方法 谢谢
你那是屁方法根本用不了 还有捧臭脚的
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或&在dwr.xml中加入如下代码:
&convert converter=&bean& match=&java.lang.StackTraceElement& /&
&convert converter=&exception& match=&java.lang.Exception&/&
这样会把Error转换成具体的错误描述来看,
就如同你在console看到的一样。(当然只有描述而已,堆栈不会显示)。
由于项目流量大看日志几乎不可能的,所以在前端显示错误的具体描述就显得额外重要了。
在加入上述代码后,如果弹出界面是:Missing param or missing method convert
则是这个原因:在JavaScript代码中找到调用后台Java的方法
bsAction.requestIsmp(&101002abc&,&004&,calling,called,
callback:function(data).....
比如我的jsp中的JavaScript代码是
这时只需把实参&101002abc&和&004&拿出来
var a = &101002abc&;
var b = &004&;
bsAction.requestIsmp(a,b,calling,called,
callback:function(data).....
这样就可以了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场后使用快捷导航没有帐号?
查看: 936|回复: 0
关于assert_param的疑惑
在线时间522 小时
威望2756 分
芯币7159 枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 2756, 距离下一级还需 744 积分
最近调试程序,发现ST的固件库中到处都是assert_param(),不清楚其编译结果,感觉这个“校参”过程很影响效率
在stm32f10x_conf.h中找到其源代码:
/* Exported macro ------------------------------------------------------------*/
#ifdef DEBUG
/*******************************************************************************
* Macro Name : assert_param
* Description : The assert_param macro is used for function's parameters check.
* It is used only if the library is compiled in DEBUG mode.
* Input : - expr: If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* Return : None
*******************************************************************************/
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(u8* file, u32 line);
#define assert_param(expr) ((void)0)
#endif /* DEBUG */
这里有这样的疑问:
1)这个“DEBUG”的宏在什么地方定义?编译器的OPTIONS?还是自己随便在哪定义,比如在main.c中?
2)((void)0)是什么意思,编译的结果是什么样的?
3)void assert_failed(u8* file, u32 line);这个函数应该是在外部定义吧?
网友回答:
这是一种常见的软件技术,可以在调试阶段利用编译器的检验功能,帮助程序员始终选择有效的参数。
所谓有效的参数是指满足规定范围的参数,比如某个参数的取值范围只能是小于3的正整数,如果给出的参数大于3,则这个assert_param()可以在编译时报告错误,使程序员可以及时发现错误,而不必等到运行程序时,因为程序运行错误而大费周折。
它确实在程序的运行上牺牲了效率(但只是在调试阶段),但在项目的开发上却帮助你提高了效率。
当你的项目开发成功,使用release模式编译之后,所有的assert_param()检验都消失了,不会影响最终程序的运行效率。
用户需要在main.c文件中实现assert_failed函数
#ifdef USE_FULL_ASSERT
* @brief Reports the name of the source file and the source line number
* where the assert_param error has occurred.
* @param file: pointer to the source file name
* @param line: assert_param error line source number
* @retval None
void assert_failed(uint8_t* file, uint32_t line)
/* User can add his own implementation to report the file name and line number,
ex: printf(&Wrong parameters value: file %s on line %d\r\n&, file, line) */
/* Infinite loop */
工程 = 数学+物理+经济
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
Powered by
逛了这许久,何不进去瞧瞧?这是什么原因(德军总部出错)_百度知道
这是什么原因(德军总部出错)
Administrator&#92: ** UNKNOWN **( ** FUNC_PARAM_ERROR ** )WolfNewOrder_x64 @ 0x4005b5ed(
bytes () ;MachineGames&#92.dll @ 0x774cc521(
bytes () ;Saved Games\ErrorLog_08-09--44pm.txt: ** UNKNOWN **( ** FUNC_PARAM_ERROR ** )WolfNewOrder_x64 @ 0x405f523f(
bytes () :Shutdown()Shutting down OpenGL subsystem***************************FATAL ERROR:.dll @ 0x7724652d(
bytes () :&#92,不知道为什么,无法进入游戏WolfNewOrder_x64 @ 0x4005fedf(
bytes () : ** UNKNOWN **( ** FUNC_PARAM_ERROR ** )kernel32.idRenderSystem: RtlUserThreadStart(
)FATAL ERROR;Users\base&#92: ** UNKNOWN **( ** FUNC_PARAM_ERROR ** )WolfNewOrder_x64 @ 0x3fd23305(
bytes () : ** UNKNOWN **( ** FUNC_PARAM_ERROR ** )WolfNewOrder_x64 @ 0x400d7990(
bytes () ;Wolfenstein The New Order&#92,再打开就出现下面这问题: Desktop color quality must be set to 32 bit or higherDumped console text to C: BaseThreadInitThunk(
)ntdll,玩了几天FUNC_PARAM_ERROR ** )开始游戏很好
我有更好的答案
桌面颜色质量必须大于或等于32位&调一下就好 百度吧
盗版才会出现这个
其他类似问题
为您推荐:
德军总部的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Discuz!NT 论坛 v3.5 源码版 展示 prompts_param.js源代码
- 下载整个 - 类型:.js文件
//////////////////////////////
// FOR DEBUGGING ONLY
var debug = false;
function dumpFormFields(formName)
& & theForm = document.forms[formName];
& & for ( idx = 0; idx & theForm.elements.length; ++idx )
& & & & alert ( theForm.elements[idx].name + & - & + theForm.elements[idx].value );
//////////////////////////////
// GLOBAL VAR
var needURLEncode = false; &// only need to do url encode in java
var promptPrefix = &promptex-&;
var CR_NULL = &_crNULL_&;
var CR_USE_VALUE = &_crUseValue_&;
var _bver & &= parseInt(navigator.appVersion);
var Nav4 & & = ((navigator.appName == &Netscape&) && _bver==4);
var Nav4plus = ((navigator.appName == &Netscape&) && _bver &= 4);
var IE4plus &= ((navigator.userAgent.indexOf(&MSIE&) != -1) && _bver&4);
if (Nav4plus)
& & var userLanguage = (navigator.language.substr(0, 2));
& & var userLanguage = (navigator.browserLanguage.substr(0, 2));
///////////////////////////////
// substitue range string
function ConstructRangeDisplayString(rangeStr, param0, param1)
& & & & var newString = rangeStr.replace(&{0}&, param0);
& & & & newString = newString.replace(&{1}&, param1);
& & & & return newString;
///////////////////////////////
// Display string for range value in ListBox
function GetRangeValueDisplayText(rangeStr, param0, param1, paramType)
& & & & if (paramType == &dt& || paramType == &d& || paramType == &t&)
& & & & {
& & & & & & & & if (param0.length != 0)
& & & & & & & & {
& & & & & & & & & & & & param0 = NeutralDT2D(param0);
& & & & & & & & }
& & & & & & & & if (param1.length != 0)
& & & & & & & & {
& & & & & & & & & & & & param1 = NeutralDT2D(param1);
& & & & & & & & }
& & & & }
& & & & return ConstructRangeDisplayString(rangeStr, param0, param1);
///////////////////////////////
// properly encode prompt values
function encodePrompt (prompt)
& & if (needURLEncode)
& & {
& & & & return encodeURIComponent(prompt);
& & }
& & {
& & & & return prompt;
& & }
function clickSetNullCheckBox(inForm, paramName, suffix)
& & var nullCtrl = inForm[paramName + &NULL&];
& & var textCtrl = inForm[paramName + suffix];
& & var hiddenCtrl = inForm[paramName + suffix + &Hidden&];
& & var hourCtrl = inForm[paramName + suffix + &Hour&];
& & var minuteCtrl = inForm[paramName + suffix + &Minute&];
& & var secondCtrl = inForm[paramName + suffix + &Second&];
& & var ampmCtrl = inForm[paramName + suffix + &AMPM&];
& & if (nullCtrl.checked)
& & {
& & & & if (textCtrl != null) textCtrl.disabled = true;
& & & & if (hourCtrl != null) hourCtrl.disabled = true;
& & & & if (minuteCtrl != null) minuteCtrl.disabled = true;
& & & & if (secondCtrl != null) secondCtrl.disabled = true;
& & & & if (ampmCtrl != null) ampmCtrl.disabled = true;
& & }
& & {
& & & & if (textCtrl != null) textCtrl.disabled = false;
& & & & if (hourCtrl != null) hourCtrl.disabled = false;
& & & & if (minuteCtrl != null) minuteCtrl.disabled = false;
& & & & if (secondCtrl != null) secondCtrl.disabled = false;
& & & & if (ampmCtrl != null) ampmCtrl.disabled = false;
& & }
function ClearListBoxAndSetNULL(theList)
& & // delete everything in the listbox, add _crNULL_ as an item
& & promptEntry = new Option(L_NoValue, CR_NULL,false,false);
& & for ( var idx = 0; idx & theList.options.length; )
& & {
& & & & theList.options[0] = null;
& & & & idx++;
& & }
& & theList.options[0] = promptEntry;
& & return;
////////////////////////////////
// add number, currency, string from dropdown/textbox to list box
// where multiple prompt values are supported
function DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl)
& & var promptValue = &&;
& & var year;
& & var month;
& & var day;
& & if ((type == &dt&) || (type == &d&))
& & {
& & & & var d = hiddenCtrl.value;
& & & & if (d.length == 0)
& & & & {
& & & & & alert(L_NoDateEntered);
& & & & & return &&;
& & & & }
& & & & var leftIndex = d.indexOf(&(&);
& & & & var rightIndex = d.indexOf(&)&);
& & & & d = d.substr(leftIndex + 1, rightIndex - leftIndex - 1);
& & & & var dArray = d.split(&,&);
& & & & year = dArray[0];
& & & & month = dArray[1];
& & & & day = dArray[2];
& & }
& & if (type == &dt&)
& & {
& & & & promptValue = &DateTime(&;
& & & & promptValue += year;
& & & & promptValue += &,&;
& & & & promptValue += month;
& & & & promptValue += &,&;
& & & & promptValue += day;
& & & & promptValue += &,&;
& & & & var hour = 0;
& & & & if (ampmCtrl != undefined)
& & & & {
& & & & & & var i = 0;
& & & & & & if (ampmCtrl.selectedIndex == 1)
& & & & & & & & i = 1;
& & & & & & hour = hourCtrl.selectedIndex + 1 + i * 12;
& & & & & & if (hour == 12) hour = 0;
& & & & & & else if (hour == 24) hour = 12;
& & & & }
& & & & else
& & & & {
& & & & & & hour = hourCtrl.selectedIndex;
& & & & }
& & & & & &
& & & & promptValue += hour;
& & & & promptValue += &,&;
& & & & promptValue += minuteCtrl.selectedIndex;
& & & & promptValue += &,&;
& & & & promptValue += secondCtrl.selectedIndex;
& & & & promptValue += &)&;
& & }
& & else if (type == &d&)
& & {
& & & & promptValue = &Date(&;
& & & & promptValue += year;
& & & & promptValue += &,&;
& & & & promptValue += month;
& & & & promptValue += &,&;
& & & & promptValue += day;
& & & & promptValue += &)&;
& & }
& & else if (type == &t&)
& & {
& & & & promptValue = &Time(&
& & & & var hour = 0;
& & & & if (ampmCtrl != undefined)
& & & & {
& & & & & & var i = 0;
& & & & & & if (ampmCtrl.selectedIndex == 1)
& & & & & & & & i = 1;
& & & & & & hour = hourCtrl.selectedIndex + 1 + i * 12;
& & & & & & if (hour == 12) hour = 0;
& & & & & & else if (hour == 24) hour = 12;
& & & & }
& & & & else
& & & & {
& & & & & & hour = hourCtrl.selectedIndex;
& & & & }
& & & & & &
& & & & promptValue += hour;
& & & & promptValue += &,&;
& & & & promptValue += minuteCtrl.selectedIndex;
& & & & promptValue += &,&;
& & & & promptValue += secondCtrl.selectedIndex;
& & & & promptValue += &)&;
& & }
& & return promptValue;
function DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl)
& & var neutralstring = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
& & return NeutralDT2D(neutralstring);
function addPromptDiscreteValueHelper(inForm, type, paramName, suffix)
& & theList = inForm[paramName + &ListBox&];
& & // if there is a NULL checkbox and it is set
& & if ( inForm[paramName + &NULL&] != null && inForm[paramName + &NULL&].checked )
& & {
& & & & // delete everything in the listbox, add _crNULL_ as an item
& & & & ClearListBoxAndSetNULL(theList);
& & & & return;
& & }
& & // if the listbox already has a NULL value in it, don't do anything, unless user removes NULl value from the listbox
& & if (theList.options.length & 0 && theList.options[0].value == CR_NULL)
& & {
& & & & alert(L_NoValueAlready);
& & & & return;
& & }
& & // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox
& & var dropDownListName = &&;
& & if (suffix == &DiscreteValue&)
& & & & dropDownListName = paramName + &SelectValue&;
& & & & dropDownListName = paramName + &SelectLowerBound&;
& & var dropDownListCtrl = inForm[dropDownListName];
& & if (dropDownListCtrl != null)
& & {
& & & & if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value &== CR_NULL)
& & & & {
& & & & & & // delete everything in the listbox, add _crNULL_ as an item
& & & & & & ClearListBoxAndSetNULL(theList);
& & & & & & return;
& & & & }
& & }
& & var textCtrl = inForm[paramName + suffix];
& & var hiddenCtrl = inForm[paramName + suffix + &Hidden&];
& & var hourCtrl = inForm[paramName + suffix + &Hour&];
& & var minuteCtrl = inForm[paramName + suffix + &Minute&];
& & var secondCtrl = inForm[paramName + suffix + &Second&];
& & var ampmCtrl = inForm[paramName + suffix + &AMPM&];
& & var obj;
& & var editables = true;
& & if (textCtrl == undefined && hourCtrl == undefined)
& & {
& & & & //select box not a textbox, hour, minute, and second, ampm dropdown are not there either
& & & & editables = false;
& & & & obj = dropDownListCtrl;
& & & & obj = obj.options[obj.selectedIndex];
& & }
& & {
& & & & if (type == &t&)
& & & & & & obj = hourCtrl;
& & & & else
& & & & & & obj = textCtrl;
& & }
& & if (editables && (type == &dt& || type == &d& || type == &t&))
& & { &
& & & & promptValue = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
& & & & if (promptValue.length == 0) return false;
& & & & displayString = DateTimeDisplayStringHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl); &
& & }
& & {
& & & & promptValue = &encodePrompt(obj.value);
& & & & displayString = ( obj.text ) ? obj.text : obj.value;
& & }
& & if ( ! checkSingleValue (promptValue, type ) )
& & {
& & & & return false;
& & }
& & promptEntry = new Option(displayString,promptValue,false,false);
& & theList.options[theList.length] = promptEntry;
function addPromptDiscreteValue ( inForm, type , paramName)
& & addPromptDiscreteValueHelper(inForm, type, paramName, &DiscreteValue&);
////////////////////////////////////
// adds Range prompt to listbox where multiple values are supported
function addPromptDiscreteRangeValue ( inForm, type , paramName )
& & lowerOption = inForm[paramName + &SelectLowerOptions&];
& & // exactly
& & if (lowerOption.selectedIndex == 1)
& & {
& & & & // add discrete
& & & & addPromptDiscreteValueHelper(inForm, type, paramName, &LowerBound&);
& & }
& & {
& & & &// add range
& & & &addPromptRangeValue(inForm, type, paramName);
& & }
////////////////////////////////////
// adds Range prompt to listbox where multiple values are supported
function addPromptRangeValue ( inForm, type , paramName )
& & theList = inForm[paramName + &ListBox&];
& & // if there is a NULL checkbox and it is set
& & if ( inForm[paramName + &NULL&] != null && inForm[paramName + &NULL&].checked )
& & {
& & & & // delete everything in the listbox, add _crNULL_ as an item
& & & & ClearListBoxAndSetNULL(theList);
& & & & return;
& & }
& & // if the listbox already has a NULL value in it, don't do anything, unless user removed NULl value from the listbox
& & if (theList.options.length & 0 && theList.options[0].value == CR_NULL)
& & {
& & & & alert(L_NoValueAlready);
& & & & return;
& & }
& & // if both defaultdropdownlists selected item is _crNULL_, put it into multiple listbox
& & // if one of them is _crNULL_, it is not a valid option, do nothing
& & var lowerDropDownListName = paramName + &SelectLowerBound&;
& & var upperDropDownListName = paramName + &SelectUpperBound&;
& & var lowerDropDownListCtrl = inForm[lowerDropDownListName];
& & var upperDropDownListCtrl = inForm[upperDropDownListName];
& & if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null)
& & {
& & & & if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value &== CR_NULL
& & & & & & && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value &== CR_NULL)
& & & & {
& & & & & & // delete everything in the listbox, add _crNULL_ as an item
& & & & & & ClearListBoxAndSetNULL(theList);
& & & & & & return;
& & & & }
& & & & else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value &== CR_NULL
& & & & & & || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value &== CR_NULL)
& & & & {
& & & & & &alert(L_BadValue);
& & & & & &return;
& & & & }
& & }
& & lowerOption = inForm[paramName + &SelectLowerOptions&];
& & upperOption = inForm[paramName + &SelectUpperOptions&];
& & lowerBound = inForm[paramName + &LowerBound&];
& & upperBound = inForm[paramName + &UpperBound&];
& & lowerBoundHidden = inForm[paramName + &LowerBoundHidden&];
& & upperBoundHidden = inForm[paramName + &UpperBoundHidden&];
& & var lhourCtrl = inForm[paramName+&LowerBound& + &Hour&];
& & var lminuteCtrl = inForm[paramName + &LowerBound& + &Minute&];
& & var lsecondCtrl = inForm[paramName + &LowerBound& + &Second&];
& & var lampmCtrl = inForm[paramName + &LowerBound& + &AMPM&];
& & var uhourCtrl = inForm[paramName+&UpperBound& + &Hour&];
& & var uminuteCtrl = inForm[paramName + &UpperBound& + &Minute&];
& & var usecondCtrl = inForm[paramName + &UpperBound& + &Second&];
& & var uampmCtrl = inForm[paramName + &UpperBound& + &AMPM&];
& & var editable = true;
& & //handle select box, not text box case
& & if ( lowerBound == undefined && lhourCtrl == undefined)//either upper or lower, doesn't matter
& & {
& & & & editable = false;
& & & & lowerBound = inForm[paramName + &SelectLowerBound&];
& & & & upperBound = inForm[paramName + &SelectUpperBound&];
& & & & lowerBound = lowerBound.options[lowerBound.selectedIndex];
& & & & upperBound = upperBound.options[upperBound.selectedIndex];
& & }
& & lowerUnBounded = (inForm[paramName+&SelectLowerOptions&].selectedIndex == (inForm[paramName + &SelectLowerOptions&].options.length - 1));
& & upperUnBounded = (inForm[paramName+&SelectUpperOptions&].selectedIndex == (inForm[paramName + &SelectUpperOptions&].options.length - 1));
& & lvalue = uvalue = &&;
& & if ( ! lowerUnBounded )
& & {
& & & & if ((type == &dt& || type == &d& || type == &t&) && (editable))
& & & & { &
& & & & & & lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
& & & & & & if (lvalue.length == 0) return false;
& & & & }
& & & & else
& & & & & & lvalue = lowerBound.value;
& & & & if ( ! checkSingleValue ( lvalue, type ) ) {
& & & & & & if ( lowerBound.focus && lowerBound.type.toLowerCase () != &hidden&)
& & & & & & & & lowerBound.focus ();
& & & & & & return false;
& & & & }
& & }
& & if ( ! upperUnBounded )
& & {
& & & & if ((type == &dt& || type == &d& || type == &t&) && (editable))
& & & & { &
& & & & & & uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
& & & & & & if (uvalue.length == 0) return false;
& & & & }
& & & & else
& & & & & & uvalue = upperBound.value;
& & & & if ( ! checkSingleValue ( uvalue, type ) ) {
& & & & & & if ( upperBound.focus && upperBound.type.toLowerCase () != &hidden&)
& & & & & & & & upperBound.focus ();
& & & & & & return false;
& & & & }
& & }
& & var ldisplay = &&;
& & var udisplay = &&;
& & if ((type == &dt& || type == &d& || type == &t&) && (editable))
& & {
& & & & if (!lowerUnBounded)
& & & & & & ldisplay = DateTimeDisplayStringHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
& & & & if (!upperUnBounded)
& & & & & & udisplay = DateTimeDisplayStringHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
& & }
& & {
& & & & ldisplay = lvalue;
& & & & udisplay = uvalue;
& & }
& & lowerChecked = (inForm[paramName+&SelectLowerOptions&].selectedIndex == 0);
& & upperChecked = (inForm[paramName+&SelectUpperOptions&].selectedIndex == 0);
& & value = lowerUnBounded ? &{& : lowerChecked ? &[& : &(&;
& & if ( ! lowerUnBounded ) //unbounded is empty string not quoted empty string (e.g not &_crEMPTY_&)
& & & & value += encodePrompt(lvalue);
& & value += &_crRANGE_&
& & if ( ! upperUnBounded )
& & & & value += encodePrompt(uvalue);
& & value += upperUnBounded ? &}& : upperChecked ? &]& : &)&;
& & if ( debug ) alert (value);
& & if ( !lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type))
& & {
& & & & & & & & return false;
& & }
& & var display = &&;
& & if (lowerChecked && upperUnBounded)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_FROM, ldisplay, &&);
& & }
& & else if (lowerUnBounded && upperChecked)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_TO, udisplay, &&);
& & }
& & else if (!lowerChecked && upperUnBounded)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_AFTER, ldisplay, &&);
& & }
& & else if (lowerUnBounded && !upperChecked)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_BEFORE, udisplay, &&);
& & }
& & else if (lowerChecked &&& upperChecked)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_FROM_TO, ldisplay, udisplay);
& & }
& & else if (lowerChecked && !upperUnBounded && !upperChecked)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_FROM_BEFORE, ldisplay, udisplay);
& & }
& & else if (!lowerChecked && !lowerUnBounded && upperChecked)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_AFTER_TO, ldisplay, udisplay);
& & }
& & else if (!lowerChecked && !lowerUnBounded && !upperChecked && !upperUnBounded)
& & {
& & & & & & & & display = ConstructRangeDisplayString(L_AFTER_BEFORE, ldisplay, udisplay);
& & }
& & if ((!lowerUnBounded) || (!upperUnBounded))
& & {
& & & & promptEntry = new Option(display,value,false,false);
& & & & theList.options[theList.length] = promptEntry;
& & }
& & {
& & & & alert(L_BadBound);
& & }
////////////////////////////////////
// disable check boxes based on user selection on the range parameters
function disableBoundCheck(lowOrUpBound, inform, paramName) {
& & if (lowOrUpBound == 0) {
& & & & if (inform[paramName + &NoLowerBoundCheck&].checked) {
& & & & & & inform[paramName + &NoUpperBoundCheck&].disabled = true;
& & & & & & inform[paramName + &LowerCheck&].disabled = true;
& & & & & & inform[paramName + &LowerBound&].disabled = true;
& & & & }
& & & & else {
& & & & & & inform[paramName + &NoUpperBoundCheck&].disabled = false;
& & & & & & inform[paramName + &LowerCheck&].disabled = false;
& & & & & & inform[paramName + &LowerBound&].disabled = false;
& & & & }
& & } else if (lowOrUpBound == 1) {
& & & & if (inform[paramName + &NoUpperBoundCheck&].checked) {
& & & & & & inform[paramName + &NoLowerBoundCheck&].disabled = true;
& & & & & & inform[paramName + &UpperCheck&].disabled = true;
& & & & & & inform[paramName + &UpperBound&].disabled = true;
& & & & } else {
& & & & & & inform[paramName + &NoLowerBoundCheck&].disabled = false;
& & & & & & inform[paramName + &UpperCheck&].disabled = false;
& & & & & & inform[paramName + &UpperBound&].disabled = false;
& & & & }
& & }
////////////////////////////////////
// puts &select& value into text box for an editable prompt which also has defaults
function setSelectedValue (inForm, selectCtrlName, textCtrlName, type, namePlusFix)
& & var textCtrl = inForm[textCtrlName];
& & var selectCtrl = inForm[selectCtrlName];
& & var hiddenCtrl = inForm[namePlusFix+&Hidden&];
& & var hourCtrl = inForm[namePlusFix+&Hour&];
& & var minuteCtrl = inForm[namePlusFix+&Minute&];
& & var secondCtrl = inForm[namePlusFix+&Second&];
& & var ampmCtrl = inForm[namePlusFix+&AMPM&];
& & // if no editable input fields are there, return,
& & if (textCtrl == null && hourCtrl == null)
& & & & return;
& & // if selectedItem is UseValue,do nothing, and return
& & if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_USE_VALUE)
& & {
& & & &return;
& & }
& & if (selectCtrl.options[selectCtrl.selectedIndex].value == CR_NULL)
& & {
& & & &if (textCtrl != null) textCtrl.disabled = true;
& & & &if (hourCtrl != null) hourCtrl.disabled = true;
& & & &if (minuteCtrl != null) minuteCtrl.disabled = true;
& & & &if (secondCtrl != null) secondCtrl.disabled = true;
& & & &if (ampmCtrl != null) ampmCtrl.disabled = true;
& & & &return;
& & }
& & {
& & & &if (textCtrl != null) textCtrl.disabled = false;
& & & &if (hourCtrl != null) hourCtrl.disabled = false;
& & & &if (minuteCtrl != null) minuteCtrl.disabled = false;
& & & &if (secondCtrl != null) secondCtrl.disabled = false;
& & & &if (ampmCtrl != null) ampmCtrl.disabled = false;
& & }
& & var year, month, day;
& & var hour, minute, second;
& & if (type == &dt& || type == &d& || type == &t&)
& & {
& & & & var sDateTime = selectCtrl.options[selectCtrl.selectedIndex].value;
& & & & if (sDateTime.length == 0)
& & & & & & return;
& & & & var leftIndex = sDateTime.indexOf(&(&);
& & & & sDateTime = sDateTime.substr(leftIndex+1, sDateTime.length - leftIndex);
& & & & var rightIndex = sDateTime.indexOf(&)&);
& & & & sDateTime = sDateTime.substr(0, rightIndex);
& & & & var a = sDateTime.split(&,&);
& & & & if (type == &dt&)
& & & & {
& & & & & & year = a[0];
& & & & & & month = a[1];
& & & & & & day = a[2];
& & & & & & hour = parseInt(a[3]);
& & & & & & minute = parseInt(a[4]);
& & & & & & second = parseInt(a[5]);
& & & & }
& & & & else if (type == &d&)
& & & & {
& & & & & & year = a[0];
& & & & & & month = a[1];
& & & & & & day = a[2];
& & & & }
& & & & else if (type == &t&)
& & & & { &
& & & & & & hour = parseInt(a[0]);
& & & & & & minute = parseInt(a[1]);
& & & & & & second = parseInt(a[2]);
& & & & }
& & }
& & selectedOption = selectCtrl.options[selectCtrl.selectedIndex];
& & if (type == &dt&)
& & {
& & & & var dt = new Date(year, month - 1, day, hour, minute, second);
& & & & textCtrl.value = GLDT(dt, true, false);
& & & & hiddenCtrl.value = &Date(&;
& & & & hiddenCtrl.value += year;
& & & & hiddenCtrl.value += &,&;
& & & & hiddenCtrl.value += month;
& & & & hiddenCtrl.value += &,&;
& & & & hiddenCtrl.value += day;
& & & & hiddenCtrl.value += &)&;
& & & & if (ampmCtrl != undefined)
& & & & {
& & & & & & if (hour == 0 || hour == 12)
& & & & & & & & hourCtrl.selectedIndex = 11;
& & & & & & else if (hour & 12)
& & & & & & & & hourCtrl.selectedIndex = hour - 12 - 1;
& & & & & & else
& & & & & & & & hourCtrl.selectedIndex = hour - 1;
& & & & }
& & & & else
& & & & & & hourCtrl.selectedIndex = hour;
& & & & minuteCtrl.selectedIndex = minute;
& & & & secondCtrl.selectedIndex = second;
& & & & if (ampmCtrl != null)
& & & & {
& & & & & & if ( hour &= 12)
& & & & & & & & ampmCtrl.selectedIndex = 1;
& & & & & & else
& & & & & & & & ampmCtrl.selectedIndex = 0;
& & & & }
& & }
& & else if (type == &d&)
& & {
& & & & var dt = new Date(year, month - 1, day, 0, 0, 0);
& & & & textCtrl.value = GLDT(dt, true, false);
& & & & hiddenCtrl.value = &Date(&;
& & & & hiddenCtrl.value += year;
& & & & hiddenCtrl.value += &,&;
& & & & hiddenCtrl.value += month;
& & & & hiddenCtrl.value += &,&;
& & & & hiddenCtrl.value += day;
& & & & hiddenCtrl.value += &)&;
& & }
& & else if (type == &t&)
& & {
& & & & if (ampmCtrl != null)
& & & & {
& & & & & & if (hour == 0 || hour == 12)
& & & & & & & & hourCtrl.selectedIndex = 11;
& & & & & & else if (hour & 12)
& & & & & & & & hourCtrl.selectedIndex = hour - 12 - 1;
& & & & & & else
& & & & & & & & hourCtrl.selectedIndex = hour - 1;
& & & & }
& & & & else
& & & & & & hourCtrl.selectedIndex = hour;
& & & & minuteCtrl.selectedIndex = minute;
& & & & secondCtrl.selectedIndex = second;
& & & & if (ampmCtrl != null)
& & & & {
& & & & & & if ( hour &= 12)
& & & & & & & & ampmCtrl.selectedIndex = 1;
& & & & & & else
& & & & & & & & ampmCtrl.selectedIndex = 0;
& & & & }
& & }
& & {
& & & & textCtrl.value = selectedOption.value;
& & }
& & if (selectCtrl.options[0].value == CR_USE_VALUE)
& & {
& & & & // always show USE_VALUE as selectedItem for the dropdownlist
& & & & selectCtrl.selectedIndex = 0;
& & }
///////////////////////////////////
// remove value from listbox where multiple value prompts are supported
function removeFromListBox ( inForm, paramName )
& & lbox = inForm[paramName + &ListBox&];
& & for ( var idx = 0; idx & lbox.options.length; )
& & {
& & & & if ( lbox.options[idx].selected )
& & & & & & lbox.options[idx] = null;
& & & & else
& & & & & & idx++;
& & }
/////////////////////////////////////
// sets prompt value into the hidden form field in proper format so that it can be submitted
function setPromptSingleValue (inform, type, paramName)
& & //alert(&SetPromptSingleValue&);
& & hiddenField = inform[promptPrefix + paramName];
& & value = &&;
& & if ( inform[paramName + &NULL&] != null && inform[paramName + &NULL&].checked )
& & {
& & & & value = CR_NULL; //NULL is a literal for, uhmm.. a NULL
& & & & hiddenField.value = value;
& & & & return true;
& & }
& & // if defaultdropdownlist selected item is _crNULL_, put it into multiple listbox
& & var dropDownListName = paramName + &SelectValue&;
& & var dropDownListCtrl = inform[dropDownListName];
& & if (dropDownListCtrl != null)
& & {
& & & & if (dropDownListCtrl.options[dropDownListCtrl.selectedIndex].value &== CR_NULL)
& & & & {
& & & & & & hiddenField.value = CR_NULL;
& & & & & & return true;
& & & & }
& & }
& & discreteVal = inform[paramName + &DiscreteValue&];
& & if (discreteVal != undefined || inform[paramName + &DiscreteValueHour&] != undefined)
& & { // editable
& & & & if ( type == &dt& || type == &d& || type == &t&)
& & & & {
& & & & & &var hiddenCtrl = inform[paramName+&DiscreteValueHidden&];
& & & & & &var hourCtrl = inform[paramName+&DiscreteValueHour&];
& & & & & &var minuteCtrl = inform[paramName + &DiscreteValueMinute&];
& & & & & &var secondCtrl = inform[paramName + &DiscreteValueSecond&];
& & & & & &var ampmCtrl = inform[paramName + &DiscreteValueAMPM&];
& & & & & &value = DateTimePromptValueHelper(type, hiddenCtrl, hourCtrl, minuteCtrl, secondCtrl, ampmCtrl);
& & & & & &if (value.length == 0) return false;
& & & & }
& & & & else
& & & & & &value = discreteVal.value;
& & }
& & {
& & & & // not editable
& & & & discreteVal = inform[paramName+&SelectValue&];
& & & & value = discreteVal.options[discreteVal.selectedIndex].value;
& & & & //alert(value);
& & }
& & if ( ! checkSingleValue ( value, type ) ) {
& & & & if (discreteVal.focus && discreteVal.type.toLowerCase ())
& & & & & &discreteVal.focus ();
& & & & return false;
& & }
& & & & value = encodePrompt(value);
& & hiddenField.value = value;
& & return true;
/////////////////////////////////////
// sets prompt value for a range into the hidden form field in proper format so that it can be submitted
function setPromptRangeValue (inform, type, paramName)
& & hiddenField = inform[promptPrefix + paramName];
& & if ( inform[paramName + &NULL&] != null && inform[paramName + &NULL&].checked )
& & {
& & & & value = CR_NULL; //NULL is a literal for, uhmm.. a NULL
& & & & hiddenField.value = value;
& & & & return true;
& & }
& & & & // if both defaultdropdownlists selected item is _crNULL_, put it into hiddenfield
& & // if one of them is _crNULL_, it is not a valid option, do nothing
& & var lowerDropDownListName = paramName + &SelectLowerBound&;
& & var upperDropDownListName = paramName + &SelectUpperBound&;
& & var lowerDropDownListCtrl = inform[lowerDropDownListName];
& & var upperDropDownListCtrl = inform[upperDropDownListName];
& & if (lowerDropDownListCtrl != null && upperDropDownListCtrl != null)
& & {
& & & & if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value &== CR_NULL
& & & & & & && upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value &== CR_NULL)
& & & & {
& & & & & & hiddenField.value = &_crNULL_&;
& & & & & & return true;
& & & & }
& & & & else if (lowerDropDownListCtrl.options[lowerDropDownListCtrl.selectedIndex].value &== CR_NULL
& & & & & & || upperDropDownListCtrl.options[upperDropDownListCtrl.selectedIndex].value &== CR_NULL)
& & & & {
& & & & & & alert(L_BadValue);
& & & & & & return false;
& & & & }
& & }
& & lowerOptions = inform[paramName + &SelectLowerOptions&];
& & upperOptions = inform[paramName + &SelectUpperOptions&];
& & lowerBound = inform[paramName + &LowerBound&];
& & upperBound = inform[paramName + &UpperBound&];
& & lowerBoundHidden = inform[paramName + &LowerBoundHidden&];
& & upperBoundHidden = inform[paramName + &UpperBoundHidden&];
& & lowerBoundDropdown = inform[paramName + &SelectLowerBound&];
& & upperBoundDropdown = inform[paramName + &SelectUpperBound&];
& & var editables = true;
& & //handle select box, not text box case
& & if (lowerBound == undefined && inform[paramName + &LowerBound& + &Hour&] == undefined)
& & {
& & & & editables = false;
& & & & lowerBound = lowerBoundDropdown;
& & & & upperBound = upperBoundDropdown;
& & & & lowerBound = lowerBound.options[lowerBound.selectedIndex];
& & & & upperBound = upperBound.options[upperBound.selectedIndex];
& & }
& & lowerUnBounded = (lowerOptions.selectedIndex == (lowerOptions.length - 1));
& & upperUnBounded = (upperOptions.selectedIndex == (upperOptions.length - 1));
& & lowerChecked = (lowerOptions.selectedIndex == 0);
& & upperChecked = (upperOptions.selectedIndex == 0);
& & uvalue = lvalue = &&;
& & if ( ! lowerUnBounded )
& & {
& & & & if ( (type == &dt& || type == &d& || type == &t&) && (editables))
& & & & {
& & & & & & var lhourCtrl = inform[paramName+&LowerBound& + &Hour&];
& & & & & & var lminuteCtrl = inform[paramName + &LowerBound& + &Minute&];
& & & & & & var lsecondCtrl = inform[paramName + &LowerBound& + &Second&];
& & & & & & var lampmCtrl = inform[paramName + &LowerBound& + &AMPM&];
& & & & & & lvalue = DateTimePromptValueHelper(type, lowerBoundHidden, lhourCtrl, lminuteCtrl, lsecondCtrl, lampmCtrl);
& & & & & & if (lvalue.length == 0) return false;
& & & & }
& & & & else
& & & & & & lvalue = lowerBound.value;
& & & & if ( ! checkSingleValue ( lvalue, type ) ) {
& & & & & & if (lowerBound != undefined && lowerBound.focus)
& & & & & & & & lowerBound.focus();
& & & & & & return false;
& & & & }
& & }
& & if ( ! upperUnBounded )
& & {
& & & & if (( type == &dt& || type == &d& || type == &t&) && &(editables))
& & & & {
& & & & & & var uhourCtrl = inform[paramName+&UpperBound& + &Hour&];
& & & & & & var uminuteCtrl = inform[paramName + &UpperBound& + &Minute&];
& & & & & & var usecondCtrl = inform[paramName + &UpperBound& + &Second&];
& & & & & & var uampmCtrl = inform[paramName + &UpperBound& + &AMPM&];
& & & & & & uvalue = DateTimePromptValueHelper(type, upperBoundHidden, uhourCtrl, uminuteCtrl, usecondCtrl, uampmCtrl);
& & & & & & if (uvalue.length == 0) return false;
& & & & }
& & & & else
& & & & & & uvalue = upperBound.value;
& & & & if ( ! checkSingleValue ( uvalue, type ) ) {
& & & & & & if (upperBound != undefined && upperBound.focus)
& & & & & & & & upperBound.focus();
& & & & & & return false;
& & & & }
& & }
& & value = lowerUnBounded ? &{& : lowerChecked ? &[& : &(&;
& & if ( ! lowerUnBounded )
& & & & value += encodePrompt(lvalue);
& & value += &_crRANGE_&
& & if ( ! upperUnBounded )
& & & & value += encodePrompt(uvalue);
& & value += upperUnBounded ? &}& : upperChecked ? &]& : &)&;
& & if ( debug )
& & & & alert (value);
& & if (lowerUnBounded && upperUnBounded)
& & {
& & & & alert(L_BadBound);
& & & & return false;
& & }
& & if (!lowerUnBounded && !upperUnBounded && !checkRangeValue(lvalue, uvalue, type))
& & {
& & & & & & return false;
& & }
& & hiddenField.value = value;
& & return true;
/////////////////////////////////////
// sets prompt value into the hidden form field in proper format so that it can be submitted
function setPromptMultipleValue (inform, type, paramName)
& & hiddenField = inform[promptPrefix + paramName];
& & values = inform[paramName + &ListBox&].options;
& & if ( values.length == 0 )
& & {
& & & & value = &_crEMPTY_&; & & //if value is empty, set to empty string
& & }
& & {
& & & & value = &&;
& & & & for ( idx = 0; idx & values.length; ++idx )
& & & & {
& & & & & & // first value could be empty string, then chcking value.length != 0 could miss one empty string
& & & & & & if ( idx != 0 )
& & & & & & & & value += &_crMULT_&
& & & & & & value += values[idx].value;
& & & & }
& & }
& & if ( debug )
& & & & alert (value);
& & hiddenField.value = value;
& & //NOTE: we'll always return true as the validation is done before values are added to select box
& & return true;
///////////////////////////////////////
// check and alert user about any errors based on type of prompt
var regNumber & &= /^(\+|-)?((\d+(\.|,| |\u00A0)?\d*)+|(\d*(\.|,| |\u00A0)?\d+)+)$/
var regCurrency &= regNumber;
var regDate &= /^(D|d)(A|a)(T|t)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *\)$/
var regDateTime &= /^(D|d)(A|a)(T|t)(E|e)(T|t)(I|i)(M|m)(E|e) *\( *\d{4} *, *(0?[1-9]|1[0-2]) *, *((0?[1-9]|[1-2]\d)|3(0|1)) *, *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/
var regTime &= /^(T|t)(I|i)(M|m)(E|e) *\( *([0-1]?\d|2[0-3]) *, *[0-5]?\d *, *[0-5]?\d *\)$/
function checkSingleValue ( value, type )
& & if ( type == 'n' && ! regNumber.test ( value ) )
& & {
& & & & alert ( L_BadNumber );
& & & & return false;
& & }
& & else if ( type == 'c' && ! regCurrency.test ( value ) )
& & {
& & & & alert ( L_BadCurrency );
& & & & return false;
& & }
& & /*else if ( type == 'd' && ! regDate.test ( value ) )
& & & & alert ( L_BadDate );
& & else if ( type == &dt& && ! regDateTime.test ( value ) )
& & & & alert ( L_BadDateTime );
& & else if ( type == 't' && ! regTime.test ( value ) )
& & & & alert ( L_BadTime );
& & //by default let it go...
& & return true;
function checkRangeValue (fvalue, tvalue, type)
& & // determine if the start is smaller than the end
& & if ((type == &n&) || (type == &c&))
& & {
& & & &// Is a number, or currency
& & & & if (eval (DelocalizeNum (fvalue)) & eval (DelocalizeNum (tvalue)))
& & & & {
& & & & & & alert(L_RangeError);
& & & & & & return false;
& & & & }
& & }
& & else if (type == &d&){
& & & & //Is a Date
& & & & if (eval(&new & + fvalue) & eval(&new & + tvalue)){
& & & & & & alert(L_RangeError);
& & & & & & return false;
& & & & } & & & &
& & }else if (type == &t&){
& & & & //Is a Time
& & & & var comp1 = eval(&new Date(0,0,0,& + fvalue.substring(fvalue.indexOf('(') + 1, fvalue.indexOf(')') + 1));
& & & & var comp2 = eval(&new Date(0,0,0,& + tvalue.substring(tvalue.indexOf('(') + 1, tvalue.indexOf(')') + 1));
& & & & if (comp1 & comp2){
& & & & & & alert(L_RangeError);
& & & & & & return false;
& & & & } & & & &
& & }else if (type == &dt&){
& & & & //Is a DateTime
& & & & var comp1 = eval(&new Date& + fvalue.substring(8, fvalue.length));
& & & & var comp2 = eval(&new Date& + tvalue.substring(8, tvalue.length));
& & & & if (comp1 & comp2){
& & & & & & alert(L_RangeError);
& & & & & & return false;
& & & & } & & & &
& & }
& & else if (type == &text&)
& & {
& & & & &// is a string
& & & & &if (fvalue.toLowerCase() & tvalue.toLowerCase())
& & & & &{
& & & & & & alert(L_RangeError);
& & & & & & return false;
& & & & &}
& & }
& & // otherwise, let it go
& & & & return true;
function DelocalizeNum(value)
& & & & // trim spaces first
& & & & var numStr = value.replace(/\s/g, &&);
& & & & & & & &
& & & & // get rid of grouping first & &
& & & & var tempStr = &&;
& & & & var index = numStr.indexOf(groupSep);
& & & & while (index != -1)
& & & & {
& & & & & & & & tempStr += numStr.substr(0, index);
& & & & & & & & numStr = numStr.substr(index + groupSep.length, numStr.length - index - groupSep.length);
& & & & & & & & index = numStr.indexOf(groupSep);
& & & & }
& & & & tempStr += numStr;
& & & & index = tempStr.indexOf(decimalSep);
& & & & var neutralStr = &&;
& & & & if (index != -1)
& & & & { & & &
& & & & & & & & neutralStr += tempStr.substr(0, index);
& & & & & & & & neutralStr += &.&;
& & & & & & & & neutralStr += tempStr.substr(index + decimalSep.length, tempStr.length - index - decimalSep.length);
& & & & }
& & & & else
& & & & {
& & & & & & & & neutralStr = tempStr;
& & & & }
& & & & return neutralStr;
// Disable enter key checking for multibyte languages since the enter key is used for committing characters
var isEnabledLanguage = (! ((userLanguage == &ja&) || (userLanguage == &ko&) || (userLanguage == &zh&)) )
var isNav = (navigator.appName == &Netscape&);
if (isEnabledLanguage)
& & if(isNav) {
& & & & document.captureEvents(Event.KEYUP);
& & }
& & document.onkeyup = checkValue;
function checkValue(evt) {
& var buttonVal = &&;
& if (isNav) {
& & if (evt.which == 13 && (evt.target.type == &text& || evt.target.type == &password&)) {
& & & & buttonVal = evt.target.value;
& & }
& } else {
& & if (window.event.keyCode == 13 && (window.event.srcElement.type == &text& || window.event.srcElement.type == &password&)) {
& & & & buttonVal = window.event.srcElement.value;
& & }
& if (buttonVal != &&) {
& & submitParameterValues ();
- 下载整个
相关源码/软件:
- C#网络编程及应用配套源代码——cs习题教材源程序,不错的小程序。
- ASP.NET使用Application实现网站计数器,实现最简单的网页访客计数,最基本的一个实现,...
- Atlas及Asp.NET AJAX实例演示,压缩包内附有Atlas的下载及安装使用说明。实例中两个...
- EfsFrame是一套整体的企业级WEB开发框架,整个框架体系中包含了Web表现层开发包,组件开发包...
- fileManage 一款基于ASP.NET的在线文件管理程序,主要是通过FSO对文件和目录进行操作...
- ASP.NET利用Calendar控件动态查询系统日期,可以查询指定日期,可在日期上做标记,也就是大...
- asp.net网络开发指南源代码,全部是WEB源代码,这些源码对ASP.NET新手相当有用。
- ASP.NET利用AdRotator控件随机显示广告图像,并显示图片的标题信息,6 秒后自动刷新至下...
- Discuz!NT是Discuz论坛的ASP.NET版,目前版本已发展至3.5,源代码开源,功能强大...
- ASP.NET+SQL2005实现的会员分成管理系统,界面设计的挺漂亮。系统具有成员树型图及结构图、...
- 仿大众点评早期版本是一个模仿大众点评早期版本的布局和二级菜单的源码,有主界面、二级菜单页面、和列表筛...
- 带服务端数据库和消息推送课程表源码是一个带有服务端和信息推送服务端的课程表项目源码,两个服务端都是基...
- 开源PDF阅读器源码是一套基于安卓的pdf阅读器源码,打开以后有个书架效果。支持PDF、DjVu、X...
- 茶叶百科类通用源码主要是介绍与茶相关的一些知识,高仿的茶百科官方应用搜索一下“茶百科+百度应用”就可...
- 仿微信的按住录音功能实现了按住说话并且有一个可以随着声音大小波动的动画效果,并且在录音结束可以播放录...
- 简单界面引导源码是一个基于pageViews的可以左右滑动的应用引导页面,只能通过手动左右滑动,不像...
- 三列瀑布流源码是一个瀑布流的例子源码,因为本例子的图片都是高清无码的大图如果是用流量会很费,建议wi...
- 简单天气查询源码是一个简单的联网获取天气信息并显示到控件上的小例子源码,非常适合新手学习简单的联网j...
- 创建、删除桌面快捷方式源码是一个在安卓手机桌面上创建和删除快捷方式的例子源码,在我的2.3.7摩托罗...
- 安卓便签记事本源码添加文本后默认文本是全文显示的,点击以后可以转换成预览显示,即只显示第一行文字。点...

我要回帖

更多关于 运吧司机宝 的文章

 

随机推荐