0

その行のボタンをクリックすると、単一のテキスト ボックス (またはパラメーター) に gridview 列のデータを入力しようとしています。Gridview は sqlconnection からデータを取得します

グリッドビューは

| | デッサン |

| | 12345 | 見る

| | 12346 | 見る

VIEW は onclick イベントを持つテンプレート ボタンです。ユーザーがボタンをクリックすると、Drawing 列 (12345) のデータがテキスト ボックスまたはパラメーターに渡されます。(これは私がどうすればよいかわからない部分です)Ivがテキストボックスに番号を取得したら、それをパラメーターとして使用でき、その図面のpdfが開かれます。これのコードがあり、機能しています。

助けてくれてありがとう

4

2 に答える 2

2

C# を使用している場合、実行時に組み込みの選択コマンド ボタンをグリッドビューの行に追加するのが最も簡単です。次に、グリッドビューの selectedindexchanged イベントで、値が必要な選択された行のセルにアクセスするだけです。その後、その文字列を必要なものに割り当てることができます。そのようです:

protected void myGridView_SelectedIndexChanged(object sender, EventArgs e)
    {
        string myString = myGridView.SelectedRow.Cells[4].Text.ToString();
        TextBox1.Text = myString;
    }

セル インデックス コレクションは 0 ベースであるため、[0] は実際には行の最初のセルです。

于 2013-11-14T17:34:15.130 に答える
0

TemplateField次のように、s とグリッド ビューのOnRowCommandイベントを使用します。

マークアップ:

<asp:gridview id="GridView1" 
              OnRowCommand="GridView1_RowCommand"
              runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="TextBoxDrawing" runat="server" 
                             Text="<%# Eval("Drawing")) %>" />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:Button ID="selc" runat="server" Text="View" 
                    CommandName="View" 
                    CommandArgument="<%# ((GridViewRow)Container).RowIndex %> />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

分離コード:

protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    // If multiple buttons are used in a GridView control, use the
    // CommandName property to determine which button was clicked
    if(e.CommandName == "View")
    {
        // Convert the row index stored in the CommandArgument
        // property to an integer
        var index = Convert.ToInt32(e.CommandArgument);

        // Retrieve the row that contains the button clicked 
        // by the user from the Rows collection      
        var row = GridView1.Rows[index];

        // Find the drawing value
        var theDrawingTextBox = row.FindControl("TextBoxDrawing") as TextBox;

        // Verify the text box exists before we try to use it
        if(theDrawingTextBox != null)
        {
            var theDrawingValue = theDrawingTextBox.Text;

            // Do something here with drawing value
        }
    }
}
于 2013-11-14T17:01:17.117 に答える