2013-09-09 3 views
0

Я пытаюсь сделать webapp с C# как код позади. Цель состоит в том, чтобы иметь возможность переключаться с одного сайта на другой с помощью клавиши со стрелками для переключения вперед и назад. У меня есть кнопка forward-& назад, которая, по моему мнению, будет проще всего вызвать из-за того, что эти кнопки уже выполняют «функцию переключения страницы». Я довольно новичок в целом C# thingy и не знаю много об этом, но я бы очень оценил, если предложения кода, которые вы делаете, комментируются.используя стрелки в C# webapp

Это код C#, который наиболее часто используется для получения местоположения страницы и говорит, что он должен делать. Я не сделал код, который взял на себя проект от парня, работающего в моей компании, поэтому я не знаю, как они все сделали точно.

public class GetPageMeta { 

public DataTable lDataTable = new DataTable(); 
public DataSet lPageDataset; 
public SqlDataAdapter lDataAdapter; 

public GetPageMeta() 
{ 
    GetDataSet(); 
} 

private void GetDataSet() 
{ 
    SqlConnection lConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["crmmonitorSQLConnectionString"].ConnectionString); 
    lConnection.Open(); 

    //lDataAdapter = new SqlDataAdapter("SELECT T_Pages.ID,T_Pages.CategoryFK,T_Categories.CategoryName,T_Pages.Name,T_Pages.URL,T_Pages.PositionID,T_Pages.DisplayDuration, T_Pages.GraphicsQuant, T_Pages.Description FROM T_Pages LEFT JOIN T_Categories ON T_Pages.CategoryFK = T_Categories.ID ORDER BY T_Pages.PositionID;", lConnection); 
    lDataAdapter = new SqlDataAdapter("SELECT T_Pages.ID,T_Pages.CategoryFK,T_Pages.Name,T_Pages.URL,T_Pages.PositionID,T_Pages.DisplayDuration, T_Pages.GraphicsQuant, T_Pages.Description FROM T_Pages ORDER BY T_Pages.PositionID;", lConnection); 


    lPageDataset = new DataSet("PageDataSet"); 
    lDataAdapter.FillSchema(lPageDataset, SchemaType.Source, "T_Pages"); 
    lDataAdapter.Fill(lPageDataset, "T_Pages"); 
    lDataTable = lPageDataset.Tables["T_Pages"]; 
    SqlCommandBuilder cmdbld = new SqlCommandBuilder(lDataAdapter); 
    lConnection.Close(); 
} 

private void GetGraphicDataSet() 
{ 

} 

public DataRow PMetaDataRow(string url) 
{ 
    try 
    { 
     DataRow PMetaDataRow; 
     DataRow[] lMetaDataRow; 
     string search = "URL='" + url + "'"; 

     //lMetaDataRow = lDataTable.Select(search); 
     lMetaDataRow = lDataTable.Select("URL='" + url + "'"); 
     PMetaDataRow = lMetaDataRow[0]; 

     return PMetaDataRow; 
    } 
    catch 
    { 
     return null; 
    } 
} 

public DataRow PMetaDataRow(int PageID) 
{ 
    try 
    { 
     DataRow PMetaDataRow; 
     DataRow[] lMetaDataRow; 
     string search = "ID='" + PageID + "'"; 

     //lMetaDataRow = lDataTable.Select(search); 
     lMetaDataRow = lDataTable.Select("ID='" + PageID + "'"); 
     PMetaDataRow = lMetaDataRow[0]; 

     return PMetaDataRow; 
    } 
    catch 
    { 
     return null; 
    } 
} 

А вот файл Masterpage:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Masterpage.master.cs" Inherits="Masterpage" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 

     <link href="Style.css" rel="stylesheet" type="text/css" /> 
     <link href="cssreset.css" rel="Stylesheet" type="text/css" /> 
     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 

<script type="text/javascript"> 
    function hideDiv() { 
     if ($(window).width() < 1580) { 
      $("#crop2").fadeOut("slow"); 
     } else { 
      $("#crop2").fadeIn("slow"); 
     } 
    } 

    //run on document load and on window resize 
    $(document).ready(function() { 

     //on load 
     hideDiv(); 

     //on resize 
     $(window).resize(function() { 
      hideDiv(); 
     }); 

    }); 
</script> 
<script type="text/javascript"> 
    function hideDiv2() { 
     if ($(window).width() < 1580) { 
      $("#crop").fadeOut("slow"); 
     } else { 
      $("#crop").fadeIn("slow"); 
     } 
    } 
    $(document).ready(function() { 

     //on load 
     hideDiv2(); 

     //on resize 
     $(window).resize(function() { 
      hideDiv2(); 
     }); 
    }); 
</script> 

     <title>MY APP</title> 
    </head> 

    <body scroll="no"> 
     <form id="form1" runat="server"> 

      <div id="logo"> 
       <a href="/home.aspx"> 
       <asp:Image ID="Logol_loop_small" runat="server" ImageUrl="~/Pictures/logol_loop_small.gif" Border="0"/> 
       </a> 
      </div> 
    <div id="topnav"> 
      <div class="menu2"> 

      <asp:Menu ID="mnuContent" runat="server" Font-Names="Trebuchet MS" 
      CssClass="SomeMenuClass" 
      Orientation="Horizontal" StaticMenuStyle-CssClass="StaticMenuStyle" DynamicMenuItemStyle-CssClass="DynamicMenuStyle" 
      StaticMenuItemStyle-CssClass="StaticMenuItemStyle" DisappearAfter="1" DynamicEnableDefaultPopOutImage="False" 
      ForeColor="Black" StaticEnableDefaultPopOutImage="False" 
      MaximumDynamicDisplayLevels="10" StaticSubMenuIndent="0px" 
       DynamicHorizontalOffset="1" > 
      <DynamicMenuItemStyle CssClass="DynamicMenuStyle" 
        VerticalPadding="3px" HorizontalPadding="26px" ItemSpacing="0px"></DynamicMenuItemStyle> 
      <DynamicMenuStyle Width="300px" CssClass="DynamicMenuStyle" /> 
       <DynamicSelectedStyle Font-Bold="False" /> 
       <DynamicItemTemplate> 
        <%# Eval("Text") %> 
       </DynamicItemTemplate> 

      <StaticMenuItemStyle CssClass="StaticMenuItemStyle" Width="138px" 
       Font-Size="12px" VerticalPadding="13px"> 
      </StaticMenuItemStyle> 
      <StaticMenuStyle CssClass="StaticMenuStyle"></StaticMenuStyle> 
      <StaticSelectedStyle Font-Bold="False" VerticalPadding="13px" /> 
      </asp:Menu> 

      </div> 

      <div id="homebutton"> 
       <asp:ContentPlaceHolder ID="CPH_homebutton" runat="server" /> 
      </div> 
     </div> 
     <div id="pagetitel"> 
     <asp:ContentPlaceHolder ID="CPH_Pagetitel" runat="server"></asp:ContentPlaceHolder> 

     </div> 

       <div id="visualtitel1"> 
       <h2> 
        <asp:ContentPlaceHolder ID="CPH_visualtitel1" runat="server" /> 
       </h2> 
      </div> 

      <div id="visual1"> 
       <asp:ContentPlaceHolder ID="CPH_visual1" runat="server" /> 
      </div> 

      <div id="visualtitel2"> 
       <h2> 
        <asp:ContentPlaceHolder ID="CPH_visualtitel2" runat="server" /> 
       </h2> 
      </div> 

      <div id="visualtitel3"> 
       <h2> 
        <asp:ContentPlaceHolder ID="CPH_visualtitel3" runat="server" /> 
       </h2> 
      </div> 

      <div id="visual2"> 
       <asp:ContentPlaceHolder ID="CPH_visual2" runat="server" /> 
      </div> 

      <div id="visual3"> 
       <asp:ContentPlaceHolder ID="CPH_visual3" runat="server" /> 
      </div> 

     <div id="NextPrevious"> 

       <div id="zuruekbutton"> 
        <asp:ContentPlaceHolder ID="CPH_zuruekbutton" runat="server" /> 
       </div> 
       <div class="explanationText"> 
        <asp:ContentPlaceHolder ID="CPH_explanationText" runat="server" /> 
       </div> 

       <div id="weiterbutton"> 
        <asp:ContentPlaceHolder ID="CPH_weiterbutton" runat="server"/>  
       </div> 

     </div> 



      <div id="crop"> 
       <asp:Image ID="cropleft" runat="server" ImageUrl="~/Pictures/crop2.jpg" Width="100%" /> 
      </div> 

      <div id="crop2"> 
       <asp:Image ID="cropright" runat="server" ImageUrl="~/Pictures/crop3.png" ImageAlign="Right" Width="100%" /> 
      </div> 

      <div id ="footerleft"> 
       <% lblCopyright.Text = "&#169; Copyright CompanyName" + DateTime.Today.Year + " | MY APP"; %> 
       <asp:Label ID="lblCopyright" runat="server"></asp:Label> 
      </div> 

      <div id ="footercenter"> 
       <asp:Label ID="lblInfo" runat="server"></asp:Label>    
      </div> 

      <div id="footerright"> 
       <% tbDateTime.Text = DateTime.Today.ToLongDateString(); %> 
       <asp:Label ID="tbDateTime" runat="server" ></asp:Label> 
      </div> 

     </form> 

    </body> 
</html> 

две "кнопки" здесь:

<asp:Content ID="Content6" ContentPlaceHolderID="CPH_weiterbutton" Runat="Server"> 
    <a ID="ancNext" runat="server" class="standardbutton" target="_self">Weiter</a> 
</asp:Content> 

<asp:Content ID="Content7" ContentPlaceHolderID="CPH_zuruekbutton" Runat="Server"> 
     <a id="ancPrevious" runat="server" class="standardbutton_back" target="_self">Zurück</a> 
</asp:Content> 
+0

Вы должны осуществить это в JavaScript, я думаю ... – Mr47

+1

Посмотрите на яваскрипт и в OnKeyPress и подобных событий. – Raidri

+0

@Web_dude Рассматривайте все нажатия клавиш, такие как клавиши слева/справа, используя javascript. Я бы отслеживал событие нажатия клавиши на этом, а затем перешел к новому URL-адресу, используя ajax или просто изменив «window.location». –

ответ

0

Вы можете использовать JavaScript для этого, захватив OnKeyUp событие на документе , Если вы знаете код ключа нажатого ключа, вы можете сделать javascript «щелчком» соответствующей кнопки, привязки или ввода, который выполняет необходимую функциональность.

Вот небольшой пример скрипта, который мог бы получить до скорости:

document.onkeydown = function(event){ 

    if(!event.keyCode){ 
     keycode = window.event.keyCode; 
    } else { 
     keycode = event.keyCode; 
    } 


    switch(keycode){ 
     //left 
     case 37: 
     $('#zuruekbutton').find('a, input[type=submit], button').click(); 
     break; 

     //right 
     case 39: 
     $('#zuruekbutton').find('a, input[type=submit], button').click(); 
     break; 

     default: 
     break; 
    } 
}; 
+0

Теперь я реализовал сценарий на своем сайте, но он дает мне ошибку времени выполнения для свойства click. он говорит, что значения имеют значение null или undefined. Есть ли у вас предложение решить эту проблему? –

+0

попробуйте отладить часть document.getElementById ('buttonLeftId'), где 'buttonLeftId' должен быть заменен вашим собственным идентификатором кнопки. Если элемент можно найти, метод click не даст вам никаких сообщений об ошибках. Если ничего не помогает, вы также можете попробовать его с помощью фреймворка вроде jQuery, у этих фреймворков есть много удобных функций для решения этих проблем. – Jasper

+0

возможно, что есть разница в том, что моя «кнопка - это просто стилизованный div, а не