1

実際、データリストにあるボタンのコマンド引数を別のページにリダイレクトしようとしています。ボタンのコマンド名を使用して、別のページのコマンド引数にアクセスするために 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) にリダイレクトされますが、ラベルにはクエリ文字列のテキストが表示されません。

4

4 に答える 4

0

はい、目的の出力が得られました。実際には、別のボタンを使用して DataList1_ItemCommand 関数の別のページにリダイレクトしていました。したがって、2 つのボタンの Response.redirects を if ループに入れて分離する必要がありました。

     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());
        }

    } 

これを手伝ってくれてありがとう

于 2019-09-01T03:42:05.437 に答える