-1

ストアド プロシージャ コールから asp.net Web ページ (ポップアップ) にリピーターを設定しています。値に基づいてハイパーリンクを動的に作成する必要がある列があり、元の Web フォームに問い合わせを呼び戻します。ただし、問題は、リンクをクリックしたときに、他のデータも取得して、このデータをビューステートに挿入する必要があることです。

私が呼び出している「GetListOfValues」関数は、明らかに、これをコーディングした方法では機能しません。これを達成する方法はありますか?

これが私の例です:

デフォルト.aspx

<asp:Repeater ID="rptReport" runat="server">
        <HeaderTemplate>
            <table>
                <tr>
                    <td>Name</td>
                    <td>ID</td>
                    <td>Value1</td>
                    <td>Value2</td>
                </tr>
        </HeaderTemplate>
        <ItemTemplate>
                <tr>
                    <td><%# DataBinder.Eval(Container.DataItem,"Name") %></td>
                    <td><%# DataBinder.Eval(Container.DataItem,"ID") %></td>
                    <td><%# DataBinder.Eval(Container.DataItem,"Value1") %></td>
                    <td><%# GetValueTwoLink(Eval("Name"),Eval("Value2") %></td>
                </tr>
        </ItemTemplate>
        <FooterTemplate>
                 <tr>
                     <%--This area holds totals for columns--%>
                 </tr>
            </table>
        </FooterTemplate>
    </asp:Repeater>

Default.aspx.cs

    protected string GetValueTwoLink(object name, object value2)
    {
        ViewState["ListOfValues"] = datalayer.GetListOfValues(name, value2);

        return string.Format(
            "<a href=\"#\" onlick=\"window.opener.ViewValues('{0}')\">{1}</a>",
            name,
            Convert.ToInt32(value2).ToString("d"));

    }

どんな助けでも大歓迎です!

4

1 に答える 1

2

そのonclickで何をしようとしているのか正確にはわかりません...しかし、コードフロントでそれを行うことができます:

 <ItemTemplate>
     <tr>
         <td><%# Eval("Name") %></td>
         <td><%# Eval("ID") %></td>
         <td><%# Eval("Value1") %></td>
         <td>
             <a href="#" 
                 onclick="<%# String.Format("window.opener.ViewValues('{0}')", DataBinder.Eval(Container.DataItem,"Name")) %>">
                 <%# Convert.ToInt32(DataBinder.Eval(Container.DataItem, "Value2")).ToString("d")%>
             </a>
         </td>
     </tr>
 </ItemTemplate>

また、ご覧のとおり、使用することもできます

<%# Eval("Name") %>

それ以外の

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

データを表示するだけです。DataBinder.Eval4 番目の のように、何らかの操作を行う必要があるときに を使用します<td>

于 2013-03-14T00:42:25.523 に答える