<html:imageBtn name="edit" value="编辑" click="edit()" style="impBtn hMargin fLeft shadow" />这个单击的时候触发的函数里面没有参数啊?但是接收得时候function edit(id){alert(id);}他这个参数是怎么接受来的?知道的说一下啊!

解决方案 »

  1.   

    你从edit方法和edit页面中找,会找到的
      

  2.   

    19  : 将日志记录写到文件 PFILE fp = CCU_NULL_PTR 191 CCU_FClose(fp) 192
    CHECK_RET_OK_RN(ulRet, ulRet) 193 pstMessage->unMessageContent.stLogContent 194
    g_apLogFileName[ucFileIndex] 195
    UINT32 WriteLogRecord(const CCU_MESSAGE * const pstMessage)
    {/* 获取日志类型和日志等级 */CCU_LOG_TYPE enLogType = CCU_LOG_TYPE_UNKNOWN;
    CCU_LOG_LEVEL enLogLevel = CCU_LOG_LEVEL_UNKNOWN;INT iFileLen = 0;UINT8 ucFileIndex = 0;UINT32 ulRet = CCU_ERR;
    191;CHECK;enLogType = 194.enLogType;enLogLevel = 194.enLogLevel;/* 对获取到的日志等级进行校验 */
    if ( (CCU_LOG_TYPE_MAX > enLogType) &&  (CCU_LOG_LEVEL_MAX > enLogLevel))
    {if (g_ucLogFileCnt == 0){222;}
    /* 打开文件,用于获取文件长度 */fp = 44(g_apLogFileName[0], "rb");
    iFileLen = 0;if (52 != fp){ulRet = CCU_GetFileLen(fp, &iFileLen);
    CHECK_FUNC_RTN_VALUE_CLOSE(CCU_OK, ulRet, ulRet, fp);192;fp = 52;}
    /* 如果文件长度大于最大文件长度,则拷贝文件 */if (iFileLen >= MAX_LOG_FILE_SIZE)
    {for (ucFileIndex = g_ucLogFileCnt - 1; ucFileIndex > 0; ucFileIndex--)
    {(VOID)MoveFile(195, g_apLogFileName[ucFileIndex - 1]);
    }}/* 一次性创建所有日志文件,上传日志文件模块要求这么做 */for (同上)
    {/* 如果文件不存在,则创建它 */if (CCU_OK != CCU_TestFileExist ( 195 ) )
    {ulRet = CCU_CreateFile (195 );193}}fp = 44(g_apLogFileName[0], "ab+");
    CHECK(fp, CCU_ERR);CCU_FPrintf(fp, "%s%s", pstMessage->chTime, RECORD_HEADSEPARAROR);
     ..(fp, .., LogLevel[194.enLogLevel], ..);..(fp, .., ModuleName[194.enLogType], RECORD_BODYSEPARAROR);
    ..(fp, .., 194.chLogContent, RECORD_SEPARATOR);192;221;}222;}
    20  : 将Opt 记录写到文件  pstMessage->unMessageContent.stOptContent 201
    CCU_UNKNOWN_OPT_LEVEL 202  g_ucOptRecordIndex[ enOptType ] 203
    UINT32 WriteOptRecord(const CCU_MESSAGE * const pstMessage){
    CHAR chRecordBuf[ MAXOPTRECODELEN ] = {0};INT iRecordLen = 0;/* 获取操作记录类型和等级 */
    CCU_OPT_TYPE enOptType = CCU_UNKNOWN_OPT_TYPE;CCU_OPT_LEVEL enOptLevel = 202;
    CHECK;enOptType = 201.enOptType;enOptLevel = 201.enOptLevel;/* 判断操作类型和登记的合法性 */
    if ( (CCU_MAX_OPT_TYPE > enOptType) && ( CCU_MAX_OPT_LEVEL > enOptLevel) ){
    /* 创建操作记录 */if (CCU_OK != CCU_CreateOptRecord(pstMessage->chTime, (UINT8*)OptLevel[ enOptLevel ], 
    201.chOptContent, 201.iOptContentLen,(UINT8*)chRecordBuf, &iRecordLen)){ 222;}/* 写操作记录文件 */
    if(CCU_OK != CCU_WRITEOPTFILE(OptFileName[ enOptType ],&203, chRecordBuf, (UINT)iRecordLen))
    { 222;}/* 实现循环记录 */203 = ( 203 + 1 ) % OPTRECORDCOUNT;221;}222;}
    21  : 将功耗记录写到文件 g_ucPowerRecordIndex[ enPowerType ] 219
    pstMessage->unMessageContent.stPowerContent 218  enPowerType 217
      

  3.   

    UINT32 WritePowerRecord(const CCU_MESSAGE * const pstMessage)
    {CHAR chRecordBuf[ MAXPOWERCODELEN ];INT iRecordLen = MAXPOWERCODELEN;
    /* 获取功率类型 */CCU_POWER_TYPE 217 = CCU_UNKNOW_POWER_TYPE;CHECK  enPowerType = 218.217;
    /* 对获取到的功率类型进行校验 */if (217 < CCU_MAX_POWER_TYPE){/* 创建功率记录 */
    if (CCU_OK != CCU_CreatePowerRecord( pstMessage->chTime, 
    218.chPowerContent,(UINT8 *)chRecordBuf, &iRecordLen )){222;}
    /* 将功率记录写到文件 */if(CCU_OK != CCU_WRITEPOWERFILE(PowerFileName[217],&219,
    chRecordBuf, (UINT)iRecordLen)){222;}/* 实现循环记录 */219= (219 + 1 ) % POWERRECORDCOUNT;221;}222;}
    22  : 写文件线程函数  CCU_MemFree(CCU_MEM_INFO 225  CCU_MESSAGE *pstMessage = CCU_NULL_PTR 226
    LOG_DBG_ERROR 227
    VOID *CCU_WriteFileProc(VOID * f)
    {UINT32 ulRet = CCU_ERR;226;UINT32 ulRunTime = 0;/* 为消PClint */f = f;
    /* 已经从消息队列获取的记录总条数*/for (;;){/* 不停地从消息队列取消息 */
    if (CCU_OK == CCU_GetMessageFromQueue( &pstMessage )){/* 检测获取的指针值的有效性 */
    CHECKPARA_CONTINUE(pstMessage)/* 判断消息类型 */switch (pstMessage->enMessageType){
    case CCU_LOG_MESSAGE_TYPE:ulRet = WriteLogRecord(pstMessage);CHECK_RTN_FREE_CONTINUE(ulRet, pstMessage);break;
    .. CCU_OPT_MESSAGE_TYPE:..WriteOptRecord(pstMessage);..
    /* 保存当前地游标 */(VOID)CCU_SaveIndex((UINT*)g_ucOptRecordIndex, (UINT*)g_ucPowerRecordIndex);..;
    .. CCU_POWER_MESSAGE_TYPE:ulRet = WritePowerRecord(pstMessage);../* 保存当前地游标 */同上;..;
    default:227("Unknow message type : %d", pstMessage->enMessageType);..;
    }/* 释放在发消息时申请的内存 */225, pstMessage);pstMessage = 52;}else{
    /* 监控线程要求十秒之内必须调用监控线程的函数,本线程是1s调用一次 */if (ulRunTime++ >= 1000)
    {(VOID)Monitor_AddThreadCounter(LOG_WRITE_THREAD);ulRunTime = 0;}ADA_Sleep(1);}}}
    23  : 开线程,开始写文件 UINT32 CCU_CreateWriteThread( VOID ){UINT32 ulThreadId = 0;
    /* 创建读消息地线程 */if (CCU_OK != ADA_CreatThread((FUNC_ENTRY)CCU_WriteFileProc,
    52, CCU_NORMAL_STACK_SIZE, &ulThreadId)){227("----------create fail no is %#x", errno);222;}
    if (CCU_OK != Monitor_CreateThreadMonitorCB( LOG_WRITE_THREAD )){
    227("Create Thread Monitor CB Fail");}LOG_DBG_INFO("create write log thread success");221;}
    24  : 写日志文件接口  return CCU_485_ERR_INVALID_PARAMETER 241
    UINT32 CCU_LogWrite(CCU_LOG_TYPE enLogType, CCU_LOG_LEVEL enLogLevel, const CHAR *pucFormat, ...)
    {va_list ap = {0};CHAR acLineBuf[MAX_RECORD_LEN] = {0};
    if ((CCU_LOG_TYPE_MAX <= enLogType) || (CCU_LOG_LEVEL_MAX <= enLogLevel))
    {241;}CHECK CCU_VAStart(ap, pucFormat);
    vsnprintf(acLineBuf, MAX_RECORD_LEN, pucFormat, ap);CCU_VAEnd(ap);acLineBuf[MAX_RECORD_LEN - 1] = '\0';
    /* 组装日志消息并发送到消息队列 */return CCU_SendLogMessage2Queue( enLogType, enLogLevel, acLineBuf );}