如何将数据列表中按钮的命令参数传递到另一个页面?

     2023-02-22     303

关键词:

【中文标题】如何将数据列表中按钮的命令参数传递到另一个页面?【英文标题】:How do i pass a command argument of a button in Data List to another page? 【发布时间】:2020-01-04 08:21:11 【问题描述】:

实际上,我正在尝试将数据列表中存在的按钮的命令参数重定向到另一个页面。我正在使用 Request.QueryString 方法在按钮的命令名称的帮助下访问另一个页面上的命令参数。请帮帮我...

这是数据列表中按钮的代码

    <asp:Button ID="Button1" runat="server" Text="Read" CommandArgument='<%# Eval("id")%>' OnClick="Button1_Click"  CommandName="content"/>

这是 DataList Item 命令函数中的代码

     protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    
        Response.Redirect("content.aspx?content=" +e.CommandArgument.ToString());

    

这是onclick函数代码

    protected void Button1_Click(object sender, EventArgs e)
    
        Response.Redirect("content.aspx");
    

这是另一个页面上的代码(content.aspx)

    protected void Page_Load(object sender, EventArgs e)
    
        if (!IsPostBack)
        
            String id = Request.QueryString["content"];
            Label1.Text = id;
                                  
    

这是整个数据列表代码

    <asp:DataList ID="DataList1" runat="server"  DataKeyField="Id" DataSourceID="SqlDataSource1" Height="657px" RepeatColumns="4" RepeatDirection="Horizontal" Width="1248px" OnItemCommand="DataList1_ItemCommand" OnItemDataBound="DataList1_ItemDataBound">
<FooterStyle BackColor="White" ForeColor="#000066" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
<ItemStyle ForeColor="#000066" />
<ItemTemplate>
    <table class="auto-style2">
        <tr>
            <td style="text-align: center">
                <asp:Label ID="Label2" runat="server" Text='<%# Eval("name") %>'></asp:Label>
                &nbsp;&nbsp;&nbsp;
                <asp:Label ID="Label4" runat="server" Text='<%# Eval("Id") %>' Visible="False"></asp:Label>
            </td>
        </tr>
        <tr>
            <td style="text-align: center">
                <asp:Image ID="Image2" runat="server" Height="250px" ImageUrl='<%# Eval("image") %>' Width="250px" />
            </td>
        </tr>
        <tr>
            <td style="text-align: center">
                <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
                <br />
                <asp:ImageButton ID="ImageButton1" runat="server" CommandName="addtofav" CommandArgument='<%# Eval("id")%>' Height="30px" Width="20px" />
            </td>
        </tr>
        <tr>
            <td style="text-align: center">
                <asp:Button ID="Button1" runat="server" Text="Read" CommandArgument='<%# Eval("id")%>' OnClick="Button1_Click"  CommandName="content"/>
            </td>
        </tr>
    </table
    <br />
    <br />
</ItemTemplate>
<SelectedItemStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />

它确实重定向到另一个页面(content.aspx),但标签不显示查询字符串文本。

【问题讨论】:

你试过 Response.Redirect("content.aspx?content = " + e.CommandArgument + " ); 是的。它不起作用。 你可以试试我的答案的新版本 【参考方案1】:

尝试将 DataList1_ItemCommand 事件更新为:

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)

  if (e.CommandName == "content")
  
    Response.Redirect("content.aspx?content=" +e.CommandArgument.ToString());
  

还要确保您在此页面代码后面的 Page_Load 方法中检查 IsPostBack。

【讨论】:

先生,我已经将 DataList 绑定到 OnItemCommand 仍然无法正常工作 能否将DataList的整个标记添加到问题中? 不,先生。它仍然重定向到另一个页面,但标签不显示任何文本。我猜它重定向是因为指定的 postbackurl 和 DataList1_ItemCommand 在使用命令参数重定向到另一个页面的情况下不起作用。 我认为 Button1 点击事件仍然存在导致此问题,请从 Button1 Html 中删除 OnClick="Button1_Click" 当你点击链接按钮时,你能在重定向时看到地址行的值吗?【参考方案2】:

是的,我得到了想要的输出。实际上,我还使用另一个按钮重定向到 DataList1_ItemCommand 函数中的不同页面。所以我只需要通过将它们放在 if 循环中来分离 2 个按钮的 Response.redirects。

     protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    
        if (e.CommandName == "content")
        
            Response.Redirect("content.aspx?content="+e.CommandArgument.ToString());
        
        if (e.CommandName == "addtofav")
        
            Response.Redirect("sortbyAZ.aspx?addtofav=" + e.CommandArgument.ToString());
        

     

谢谢大家帮我解决这个问题

【讨论】:

【参考方案3】:

我认为您没有将 Request.QueryString["content"] 转换为字符串格式,试试这个

protected void Page_Load(object sender, EventArgs e)

    if (!IsPostBack)
    
        String id = Request.QueryString["content"];
        Label1.Text = id;
                              


    

【讨论】:

【参考方案4】:

您可以在本教程中找到所需的所有信息。来自@microsoft msdn 祝你好运

<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>DataList Select Example</title>
<script runat="server">

  ICollection CreateDataSource() 
  

     // Create sample data for the DataList control.
     DataTable dt = new DataTable();
     DataRow dr;

     // Define the columns of the table.
     dt.Columns.Add(new DataColumn("Item", typeof(Int32)));
     dt.Columns.Add(new DataColumn("Qty", typeof(Int32)));
     dt.Columns.Add(new DataColumn("Price", typeof(double)));

     // Populate the table with sample values.
     for (int i = 0; i < 9; i++) 
     
        dr = dt.NewRow();

        dr[0] = i;
        dr[1] = i * 2;
        dr[2] = 1.23 * (i + 1);

        dt.Rows.Add(dr);
     

     DataView dv = new DataView(dt);
     return dv;

  

  void Page_Load(Object sender, EventArgs e) 
  

     // Load sample data only once, when the page is first loaded.
     if (!IsPostBack) 
     
        ItemsList.DataSource = CreateDataSource();
        ItemsList.DataBind();
     

  

  void Item_Command(Object sender, DataListCommandEventArgs e) 
  

     // Set the SelectedIndex property to select an item in the DataList.
     ItemsList.SelectedIndex = e.Item.ItemIndex;

     // Rebind the data source to the DataList to refresh the control.
     ItemsList.DataSource = CreateDataSource();
     ItemsList.DataBind();

  

</script>

</head>
<body>

<form id="form1" runat="server">

 <h3>DataList Select Example</h3>

  Click <b>Select</b> to select an item.

 <br /><br />

  <asp:DataList id="ItemsList"
       GridLines="Both"
       CellPadding="3"
       CellSpacing="0"           
       OnItemCommand="Item_Command"
       runat="server">

     <HeaderStyle BackColor="#aaaadd">
     </HeaderStyle>

     <AlternatingItemStyle BackColor="Gainsboro">
     </AlternatingItemStyle>

     <SelectedItemStyle BackColor="Yellow">
     </SelectedItemStyle>

     <HeaderTemplate>

        Items

     </HeaderTemplate>

     <ItemTemplate>

        <asp:LinkButton id="SelectButton" 
             Text="Select" 
             CommandName="Select"
             runat="server"/>

        Item <%# DataBinder.Eval(Container.DataItem, "Item") %>

     </ItemTemplate>

     <SelectedItemTemplate>

        Item:
        <asp:Label id="ItemLabel" 
             Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' 
             runat="server"/>

        <br />

        Quantity:
        <asp:Label id="QtyLabel" 
             Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' 
             runat="server"/>

        <br />

        Price:
        <asp:Label id="PriceLabel" 
             Text='<%# DataBinder.Eval(Container.DataItem, "Price", "0:c") 
%>' 
             runat="server"/>

</SelectedItemTemplate>

</asp:DataList>

</form>
</body>
</html>

顺便说一句,我认为您不需要定义按钮单击事件。已用变量定义路径。只需将按钮转换为链接按钮并删除按钮单击事件

【讨论】:

尝试了链接按钮方法先生。还是不行。它确实重定向到另一个页面,但标签不显示查询字符串文本。

通过按钮将路由参数传递到另一个页面

】通过按钮将路由参数传递到另一个页面【英文标题】:Passingrouteparameterthroughbuttontoanotherpage【发布时间】:2019-03-0602:21:21【问题描述】:我正在使用materialui库和react-router。在我的***组件中,我指定了我的路线:classAppextendsCompon... 查看详情

如何将列表框选定项作为按钮中的命令参数传递?

】如何将列表框选定项作为按钮中的命令参数传递?【英文标题】:Howtopasslistboxselecteditemascommandparameterinabutton?【发布时间】:2013-08-1722:15:39【问题描述】:这是我的情况:<ListBoxItemsSource="BindingPath=AvailableUsers"><ListBox.ItemTe... 查看详情

将下拉列表中的值从一个 php 传递到另一个

】将下拉列表中的值从一个php传递到另一个【英文标题】:Passingvaluefromadropdownlistfromonephptoanother【发布时间】:2013-04-2517:06:41【问题描述】:我有从MySQL表填充的下拉列表。一个按钮。另一个php页面我需要做什么:单击按钮时,... 查看详情

Laravel 将数据从一个视图传递到另一个视图

】Laravel将数据从一个视图传递到另一个视图【英文标题】:LaravelPassingDataFromOneViewtoAnotherView【发布时间】:2015-10-2317:33:50【问题描述】:我正在考虑从主页制作一个登陆页面,它将引导客人进入注册页面。我想制作两个用于发... 查看详情

将参数传递给页面,数据不更新

】将参数传递给页面,数据不更新【英文标题】:Passparametertopage,datanotupdating【发布时间】:2022-01-1212:07:56【问题描述】:我有一个导航组件,我在其中将参数传递到另一个页面,正在传递参数,但是,下拉列表中的数据并未针... 查看详情

如何将下拉列表选定的数据传递到另一个表并在 asp.Net MVC 中更新该表

】如何将下拉列表选定的数据传递到另一个表并在asp.NetMVC中更新该表【英文标题】:HowtopassdropDownlistSelecteddatatoanothertableandupdatethattableinasp.NetMVC【发布时间】:2021-10-2817:26:12【问题描述】:控件类将输入数据保存到Invoice表中。... 查看详情

如何将数据从 sqlite 数据库传递到另一个活动?

】如何将数据从sqlite数据库传递到另一个活动?【英文标题】:HowdoIpassdatafromsqlitedatabasetoanotheractivity?【发布时间】:2016-11-1310:46:19【问题描述】:我有一个包含列id,eng,kurd,ar的数据库,并从中填充了一个列表视图,该列表视图... 查看详情

是否可以将 listBox 选定的项目从一个 wpf 页面传递到另一个页面

...发布时间】:2019-05-0914:16:26【问题描述】:我试图在一个列表框中选择多个项目,当按下按钮时,这些项目会移动到单独页面上的另一个列表框。也许我需要使用序列化或存储文件夹?【问题讨论】:这可能有用:Passingdata 查看详情

将参数传递到另一个网页

...Jquery/AjaxAPI使用用户在注册帐户时输入的信息来更新相关数据库。成功发送数据后,我需要打开另一个页面,用户可以在其中上传他们的用户照片。我的数据发送到的表单处理PHP页面使用PDO函数将最后插入的id抓取到我的表$users_I... 查看详情

如何将 LatLng 的数组列表从一个活动传递到另一个活动

】如何将LatLng的数组列表从一个活动传递到另一个活动【英文标题】:HowtopassanarrylistofLatLngfromoneactivitytoanother【发布时间】:2015-09-0509:41:26【问题描述】:我想通过按钮单击将ArrayList的LatLng变量从一个Activity传递给另一个。String... 查看详情

asp.net怎么将本页面内的某个参数传递到另一个页面中呢?

我在Default1.aspx中设计了一个Gridview新闻列表,已经从数据库中读取了数据,标题列是链接,怎么实现点击标题列的某一条链接就将左边的编号传给Default2.aspx中的label上?我在网上查的说是这样:label.text=Request.QueryString["NewsID&q... 查看详情

将一个列表从一个类传递到另一个表单的列表框

...钮时,Form2应该会弹出一个历史列表框。当我试图弄清楚如何将列 查看详情

如何将值从一个php页面传递到另一个? [复制]

】如何将值从一个php页面传递到另一个?[复制]【英文标题】:HowtopassvalueFromonephppagetoanother?[duplicate]【发布时间】:2019-11-3008:11:36【问题描述】:Page1.php有一个提交按钮和一个变量$a=1。当我单击提交按钮时,它会转到page2.php并... 查看详情

Extjs 7,如何使用视图模型将动态数据从一个控制器传递到另一个控制器

】Extjs7,如何使用视图模型将动态数据从一个控制器传递到另一个控制器【英文标题】:Extjs7,HowtopassdynamicdatafromonecontrollertoanothercontrollerusingviewModel【发布时间】:2020-06-2906:28:23【问题描述】:我是sencha的新手,我正在尝试使用c... 查看详情

将数据从页面传递到另一个页面

】将数据从页面传递到另一个页面【英文标题】:Passdatafrompagetoanother【发布时间】:2020-11-2014:30:37【问题描述】:我最近开始使用next.js,虽然我已经有一些react经验,但我有以下文件夹结构:/segments-index.js-[slug].js场景:在页面[... 查看详情

试图将三个参数从一个 php 文件传递​​到另一个

...一个php文件传递​​到另一个。其中两个参数位于在单击按钮调用第二个php文件之前很久就已确定的变量中,但一个将在单击按钮时从文本框中获取。到目前为止,我在第一个php文件中有以下(sn-p) 查看详情

如何在页面之间传递input=“file”数据(代码片段)

我正在尝试实现文件上传按钮,一旦选择了文件,用户就会被定向到另一个页面,其中包含一个表单,以便在提交之前填写额外的数据。这可能吗?要将输入值传递到另一个页面?我注意到表单项的“值”不是真值(即前缀为“... 查看详情

迅速。如何将计算结果传递到另一个屏幕?

】迅速。如何将计算结果传递到另一个屏幕?【英文标题】:swift.HowcanIpassthecalculationresulttoanotherscreen?【发布时间】:2022-01-1905:56:43【问题描述】:我是快速的初学者。在这个项目中,我需要将用户的输入存储到字典中。然后我... 查看详情