vb.net - PullRequest
       14

vb.net

0 голосов
/ 23 сентября 2018

во-первых, я очень новичок в asp.net, во-вторых, извините за мой английский,

У меня есть этот .asp код, написанный на vb.net, и мне удается отобразить данные gridview,Я также добавил ниже строки кода, чтобы сделать всю строку кликабельной.

Private Sub AutoPopulateGridView_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles AutoPopulateGridView.RowCreated
    If e.Row.RowType = DataControlRowType.DataRow Then
        e.Row.Attributes("onmouseover") = "this.style.cursor='pointer';this.style.color='#47B6D2';"
        e.Row.Attributes("onmouseout") = "this.style.textDecoration='none';this.style.color='black';"
        e.Row.ToolTip = "Click to view details"         
    End If
End Sub

я хочу, чтобы, когда пользователь щелкал по каждой строке (ям), я открывал новую страницу, загруженную новыми данными, которые прошли по этой строке, по которой щелкнул пользователь.и я застрял здесь.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Это решение немного отличается от вашего.Но вы можете получить представление здесь

Здесь список данных показан в табличном формате, и здесь также добавлена ​​редактируемая ссылка, чтобы вы узнали, как передавать данные (фактически идентификатор элемента), используя тег в html..

Вот код .............

<body>
    <%
    dim query
    Dim objConn, objRS, sqlString
    set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("hospital.mdb")    
    set objRS = Server.CreateObject("ADODB.Recordset")
    sqlString ="select * from Test"
    objRS.Open sqlString, objConn
   
%>
            <table class="table table-border table-hover table-striped">
                <thead class="thead-dark">
                    <th>Test Name</th>
                    <th>Test Type</th>
                    <th>Unit Price</th>
                    <th>Date</th>
                    <th></th>
                </thead>
                <% Do Until objRs.EOF = True%>

                <tr id="<%=objRS("iD")%>">
                    <td>
                        <%Response.Write(objRS("TestName"))%>
                    </td>
                    <td>
                        <%Response.Write(objRS("Type"))%>
                    </td>
                    <td>
                        <%Response.Write(objRS("UnitPrice"))%>
                    </td>
                    <td>
                        <%Response.Write(objRS("AddingDate"))%>
                    </td>

                    <td> <a href='editTest.asp?Id=<%=objRS("Id")%>'>Edit</a></td>
                </tr>
                <%
			    objRS.MoveNext
                loop
                objRS.Close
                 objConn.Close
			
			%>
            </table>
</body>
0 голосов
/ 23 сентября 2018

Все, что вы хотите сделать, может быть выполнено с помощью шаблонов GridView на вашей странице ASPx.

Вместо того, чтобы позволить GridView определять сами столбцы, определите их с помощью шаблонов, где вы можете добавить элементы управления в виде сетки.,Когда вы привязываете свои данные к представлению таблицы, элементы управления в каждом столбце автоматически привязываются к вашему набору данных.Ниже вы можете увидеть столбец гиперссылки, который использует столбец таблицы данных my_value_database_column, и это значение передается на новую страницу в GET или в строку запроса.(Передача значений таким способом - HTTP GET).

<asp:GridView ID="AutoPopulateGridView" runat="server" AutoGenerateColumns="False">
    <Columns>
          <asp:TemplateField HeaderText="My Linked Column">
              <ItemTemplate>
                  <asp:HyperLink ID="HyperLink1" runat="server" href='MyNextPage.aspx?valueToPass=<%#Eval("my_value_database_column").ToString()%>'><%# Eval("column_name_with_text").ToString()%></asp:HyperLink>
              </ItemTemplate>
          </asp:TemplateField>

          <asp:TemplateField HeaderText="boring column" ItemStyle-CssClass="myHoverClass">
              <ItemTemplate>
                  <%# Eval("other_datatable_column_name").ToString()%>
              </ItemTemplate>
          </asp:TemplateField>

     </Columns>
</asp:GridView>

Чтобы получить значение, переданное на следующей странице, в codebehind (файл .cs) получите значение из строки запроса:

public partial class MyNextPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //first page hit
        if (!IsPostBack)
        {
            Response.Write("THE VALUE PASSED WAS '" + Request.QueryString["valueToPass"] + "'");
        }

    }
}

Также стили могут быть добавлены непосредственно в шаблон gridview на странице ASPx, используя css и псевдо-класс: hover

<style type="text/css">
        .myHoverClass {
            text-decoration:none;
            color:black;
        }

        .myHoverClass:hover {
            cursor: pointer;
            color: #47B6D2;
        }
    </style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...