首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在我的Blazor服务器应用程序中,我在动态编程表的行时遇到了问题。有什么问题吗?

在我的Blazor服务器应用程序中,我在动态编程表的行时遇到了问题。有什么问题吗?
EN

Stack Overflow用户
提问于 2022-08-29 07:15:58
回答 1查看 36关注 0票数 0

我在我的Blazor服务器应用程序(代码-1)下面有剃须刀页面。在这张剃须刀页里,我有两个动态表。在第一个表中,列出了数控机床的数控AX名称(AX0...AX7)。如果用户单击轴名,则属于该轴的轴参数应列在第二个表中。结果,如果我单击任何轴名,我总是会得到第二个表中最后一个轴(AX7)的参数。

从二维CNC_AX_MD阵列中读取轴参数。我确信数组对于每个轴都有正确的值,因为如果我编写像Code-2这样的第一个表(下面),一切都很好。但是,轴的数量有时要比我的代码多得多,所以我不得不缩短代码。

我想我的表-1中的动态表结构与for循环有问题。有什么问题吗?我试过这个动作了。注释掉"StateHasChanged()“,但没有帮助。

代码-1

代码语言:javascript
运行
复制
<table>
@{  for (int j = 0; j < 8; j++)
     {
       <tr>
         <td @onclick='@(e => Select_CNC_AX_par(j))'>@CNC_AX_Names[j]</td>
       </tr>
     //StateHasChanged();         
     }
 }
 </table>

<table>
@{  for (int m = 0; m < arraylenght; m++)                            
    {
      <tr>
        <td >CNC_AX_parameter[m]</td>
      </tr>
    }
 }
 </table>



 public void Select_CNC_AX_par(int aksno)
 {
   for(int k=0; k < arraylenght;k++)
    {      
      CNC_AX_parameter[k] = CNC_AX_MD[k, axno];
    }
 }

代码-2

代码语言:javascript
运行
复制
<table>
@{ <tr>
      <td @onclick='@(e => Select_CNC_AX_par(0))'>@CNC_AX_Names[0]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(1))'>@CNC_AX_Names[1]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(2))'>@CNC_AX_Names[2]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(3))'>@CNC_AX_Names[3]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(4))'>@CNC_AX_Names[4]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(5))'>@CNC_AX_Names[5]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(6))'>@CNC_AX_Names[6]</td>
   </tr>
   <tr>
      <td @onclick='@(e => Select_CNC_AX_par(7))'>@CNC_AX_Names[7]</td>
   </tr>
  
 }
 </table>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-29 07:46:57

尝试使用以下代码:

代码语言:javascript
运行
复制
<table>
    @{
        for (int j = 0; j < 8; j++)
        {
            var Number = j;
            <tr>
                <td @onclick='@(e => Select_CNC_AX_par(Number))'>@j</td>
            </tr>
            //StateHasChanged();
        }
    }
</table>

不要在lambda表达式中直接使用循环变量,如前面的for循环示例中的i。否则,所有lambda表达式都会使用相同的变量,这将导致在所有lambda中使用相同的值。

有关更多细节,您可以尝试参考官方的文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73525288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档