1

わかりましたので、現在、次のコードを使用して検索を実装しています。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:connectionstringexample %>" 
     SelectCommand="SELECT [ID], [SPECIALIST], [CUST_LNAME], [CUST_FNAME], [COMPANY_NAME], [EVENT_TYPE] FROM [tblcontacts] WHERE (([CUST_FNAME] = @CUST_FNAME) OR ([CUST_LNAME] = @CUST_LNAME) OR ([COMPANY_NAME] = @COMPANY_NAME) OR ([EVENT_TYPE] = @EVENT_TYPE))">
        <SelectParameters>
            <asp:ControlParameter ControlID="searchtext" Name="CUST_FNAME" 
                PropertyName="Text" Type="String" />
            <asp:ControlParameter ControlID="searchtext" Name="CUST_LNAME" 
                PropertyName="Text" Type="String" />
            <asp:ControlParameter ControlID="searchtext" Name="COMPANY_NAME" 
                PropertyName="Text" Type="String" />
            <asp:ControlParameter ControlID="searchtext" Name="EVENT_TYPE" 
                PropertyName="Text" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>

<asp:GridView ID="recordsgrid" runat="server" AllowSorting="True" 
        AutoGenerateColumns="False" DataSourceID="SqlDataSource1" 
    Width="916px" BackColor="White" BorderColor="#999999" BorderStyle="None" 
            BorderWidth="1px" CellPadding="3" GridLines="Vertical" 
        DataKeyNames="ID" >
        <AlternatingRowStyle BackColor="#DCDCDC" />
        <Columns>
            <asp:CommandField ShowSelectButton="True" />

            <asp:BoundField DataField="ID" HeaderText="ID" 
                SortExpression="ID" InsertVisible="False" ReadOnly="True" />
            <asp:BoundField DataField="SPECIALIST" HeaderText="Event Specialist" 
                SortExpression="SPECIALIST" />
            <asp:BoundField DataField="CUST_LNAME" HeaderText="Client's Last Name" 
                SortExpression="CUST_LNAME" />
            <asp:BoundField DataField="CUST_FNAME" HeaderText="Client's First Name" 
                SortExpression="CUST_FNAME" />
            <asp:BoundField DataField="COMPANY_NAME" HeaderText="Company Name" 
                SortExpression="COMPANY_NAME" />
            <asp:BoundField DataField="EVENT_TYPE" HeaderText="Event Type" 
                SortExpression="EVENT_TYPE" />

        </Columns>
        <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
        <HeaderStyle BackColor="#4b6c9e" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
        <RowStyle ForeColor="Black" BackColor="#EEEEEE" />
        <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
        <SortedAscendingCellStyle BackColor="#F1F1F1" />
        <SortedAscendingHeaderStyle BackColor="#0000A9" />
        <SortedDescendingCellStyle BackColor="#CAC9C9" />
        <SortedDescendingHeaderStyle BackColor="#000065" />
    </asp:GridView> 

私が望むのは、ID 列の ID をクリックして、その一意の ID に関連するフォームのデータを自動入力する新しいページを開くことができるようにすることです。私はasp.netとC#を使用しています。どんな助けでも大歓迎です。

編集:

<asp:HyperLinkField DataTextField="ID" DataNavigateUrlFormatString="Searchresults.aspx?@ID={0}" Text="ID" DataNavigateUrlFields="ID" HeaderText="ID" 
                SortExpression="ID" InsertVisible="False"  />
4

2 に答える 2

1

その行 ID を含むクエリ パラメーターを渡すページにリンクするハイパーリンク列を作成します。ハイパーリンク列を使用すると、URL 形式の文字列を指定して、その文字列でデータ ソースのデータを使用できます。適切な ID を持つ別のページに移動したら、そのフォームに正しいデータを入力できると確信しています。

于 2012-05-01T13:32:43.440 に答える
1

ID 列を itemtemplate にすることができます。

  <asp:TemplateField>
      <ItemTemplate>
      <asp:LinkButton ID="lb1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "id") %>' CommandName="detail" commandArgument="<%$ Eval("id")%> />
</ItemTemplate>
</asp:TemplateField>

次に、グリッドビューのクリックイベントで、クリックされたIDにアクセスでき、そのIDを相関データをロードする必要があるメソッドに渡すことができます。

protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
 {
    if (e.CommandName ="detail")
     {
  int index = Convert.ToInt32(e.CommandArgument);
  List<Something> test = SomeMethod(index);
    }
 }

編集: すでに提案されているように、ハイパーリンクを使用してナビゲートすることもできます。

于 2012-05-01T13:40:30.667 に答える