4

必要な GridView の作成に問題があります。ユーザーに Web サイト内に入り、DB に接続されている GridView を表示してもらいたいと思います。列は次のとおりID, InsertionTime, Filepath, ProccessedByUser です。ユーザーに、処理したいファイルパスをクリックしてもらいます。彼/彼女がファイルパスをクリックすると、ユーザー名 (組み込みの ASP Web サイト認証でログイン) が DB に更新 (追加) されるようにします。

私のマークアップは標準であり、分離コードで管理する必要はありません。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="ID" DataSourceID="AccessDataSource1" 
    onselectedindexchanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
            ReadOnly="True" SortExpression="ID" />
        <asp:BoundField DataField="starttime" HeaderText="starttime" 
            SortExpression="starttime" />
        <asp:HyperLinkField DataNavigateUrlFields="path" DataTextField="path" 
            HeaderText="path" />
        <asp:BoundField DataField="user" HeaderText="user" SortExpression="user" />
    </Columns>
</asp:GridView>

HyperlinkField を使用してみましたが、onlick イベントをサポートしていないようです。

助言がありますか?ありがとう。

4

2 に答える 2

10

イベントLinkButtonを持つコントロールを探していると思います。OnClick

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="ID" DataSourceID="AccessDataSource1" 
    onselectedindexchanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
            ReadOnly="True" SortExpression="ID" />
        <asp:BoundField DataField="starttime" HeaderText="starttime" 
            SortExpression="starttime" />
        <asp:TemplateField HeaderText="Path" SortExpression="Filepath">
            <ItemTemplate>
                <asp:LinkButton ID="LbPath" runat="server" 
                    Text='<%# Eval("Filepath") %>'
                    CommandName="PathUpdate" 
                    CommandArgument='<%#Bind("path") %>'>
                </asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="user" HeaderText="user" SortExpression="user" />
    </Columns>
</asp:GridView>

LinkButton's これで、クリック イベントまたはイベントを処理できますGridView's RowCommand

protected void Gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "PathUpdate")
    {
        string path= e.CommandArgument.ToString();
        // do you what you need to do
    }
}

TemplateFieldネストされたGridViewsGridViewまたはUserControls.

于 2013-03-08T09:31:18.110 に答える
0

ButtonField を使用してから、グリッドビューの OnRowCommand を処理できます。例:

http://msdn.microsoft.com/SV-SE/library/system.web.ui.webcontrols.buttonfieldbase.buttontype.aspx

ButtonField の ButtonType 属性を設定して、ボタンをリンクとして表示できます。

于 2013-03-08T09:31:43.283 に答える