You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何给Material-UI按钮配置带动态参数的SSRS报表下载链接?

解决Material-UI Button动态生成SSRS报表下载链接的问题

你的问题出在模板字符串使用方式错误,以及变量取值逻辑问题:

  1. 模板字符串必须用反引号``包裹,双引号里的${}会被当成普通文本,不会解析变量。
  2. 你需要从当前遍历的alldata对象中取订单号,而非使用未关联当前行数据的ordernumber变量(假设你的数据里订单号字段是ord_no,对应alldata.ord_no)。

修正后的代码如下:

{data.map((alldata) => (
    <ul key={alldata.id}> 
      <li><input id={alldata.id} defaultValue={alldata.supplier_email} onChange={e => setInput1(e.target.value)} size="35"/></li> 
      <li><input id={alldata.id} defaultValue={alldata.confirmed} onChange={e => setInput2(e.target.value)} size="35"/></li>
      <Button component={Link} to={`http://sqlserver15/ReportServer/Pages/ReportViewer.aspx?%%2fESE_PRODUCTION%2fEvent+Manager%2fPurchase_Order&ord_no=${alldata.ord_no}&rs:Command=Render&rs:Format=PDF`}>
        下载报表
      </Button>
      <button id={alldata.ID} onClick={handleUpdate}>Update</button>
    </ul>
))}

关键说明:

  • 将to属性的双引号替换为反引号``,这样内部的${}会被正确解析为变量值。
  • 把${ordernumber}改为${alldata.ord_no},确保每一行按钮对应当前行的订单号(如果你的订单号字段名不是ord_no,替换为数据里的实际字段名即可)。
  • Material-UI的Button配合Link使用时,to属性完全支持动态生成的字符串,格式正确就能正常跳转。

内容的提问来源于stack exchange,提问作者Glenn94

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:05:33