2013-04-10 58 views
0

- 我正在使用asp.net創建一個gridview控件,我想在一個設置爲預定義值的列中添加一個jQuery滑塊。我的方法是使用gridview的行創建事件來調用具有預定義值的滑塊函數,但是當頁面呈現時沒有滑塊。任何想法爲什麼?在gridview行中插入jquery滑塊

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="AssessmentLoggedIn.aspx.vb" Inherits="BCEE_KAIV2.WebForm1" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> 
    <!-- HTTP 1.1 --> 
<meta http-equiv="Cache-Control" content="no-store"/> 
<!-- HTTP 1.0 --> 
<meta http-equiv="Pragma" content="no-cache"/> 
<!-- Prevents caching at the Proxy Server --> 
<meta http-equiv="Expires" content="0"/> 
    <style type="text/css"> 
     .btnHolder { 
      text-align: center; 
      width: 175px; 
      margin: 0 auto; 

     } 
    #slider { 
     float: left; 
     width: 305px; 
     padding-left:10px; 
     padding-right:10px; 
    } 
    .auto-style3 { 
     color:Gray; 
    } 
</style> 
    <link href="Styles/jquery-ui.css" rel="stylesheet" type="text/css" /> 
    <script type="text/javascript" src="Scripts/tinybox2/tinybox.js"></script> 
    <link href="Scripts/tinybox2/style.css" rel="stylesheet" /> 
    <script src="Scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="Scripts/jquery-ui.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#accordion").accordion({ 
       collapsible: true, 
       heightStyle: "content" 
      }); 
     }); 
    </script> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h3> <span class="auto-style3">Welcome</span>&nbsp; 
    <asp:Label ID="lastNameHolder" runat="server" Text="Label" CssClass="auto-style3"></asp:Label>, 
    &nbsp; 
    <asp:Label ID="firstNameHolder" runat="server" Text="Label" CssClass="auto-style3"></asp:Label> 
    </h3> 
    <div id="accordion"> 
     <h3>Step 1: Complete Optional Information</h3> 
    <div>Displ some box <br /></div> 
    <h3>Step 2: Take Assessment</h3> 
    <div id="divStep2" runat="server"><div class="btnHolder"><asp:Button ID="btnAssessStart" runat="server" Text="Start Your Assessment" /></div></div> 
    <h3>Step 3: Review Responses</h3> 
    <div> 
      <asp:LinqDataSource ID="linqDSUserResponse" runat="server" 
      ContextTypeName="BCEE_KAIV2.kaiDataContext" EntityTypeName="" 
      TableName="tblAssessmentQuestions"> 
     </asp:LinqDataSource> 

     <asp:GridView ID="gvDisplayUserResponse" runat="server" 
      AutoGenerateColumns="False" DataKeyNames="questionPK" 
      DataSourceID="linqDSUserResponse"> 
      <Columns> 
       <asp:CommandField ShowSelectButton="True" /> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:Label ID="lblItemNum" runat="server" Text="Label"></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="questionPK" SortExpression="questionPK" 
        Visible="False"> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("questionPK") %>'></asp:Label> 
        </ItemTemplate> 
        <EditItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("questionPK") %>'></asp:Label> 
        </EditItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="questionPresentationOrder" HeaderText="questionPresentationOrder" 
        SortExpression="questionPresentationOrder" Visible="False" 
        InsertVisible="False" /> 
       <asp:BoundField DataField="questionChoice1Text" 
        HeaderText="questionChoice1Text" 
        SortExpression="questionChoice1Text" /> 
       <asp:TemplateField> 
       <ItemTemplate> 
        <div id="slider"> </div> 
       </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="questionChoice2Text" 
        HeaderText="questionChoice2Text" SortExpression="questionChoice2Text" /> 
       <asp:CheckBoxField DataField="questionStatus" HeaderText="questionStatus" 
        SortExpression="questionStatus" Visible="False" /> 
      </Columns> 
     </asp:GridView> 
    </div> 
    <h3>Step 4: Evaluate Assessment</h3> 
     <div><div class="btnHolder"><asp:Button ID="evaluateAssessment" runat="server" Text="Evaluate Your Assessment"/></div></div> 
</div> 
<script type="text/javascript"> 
     function open_win() { 
      window.open("AssessmentLoggedIn.aspx", "_self"); 
     } 
</script> 

    </asp:Content> 

後面我的代碼

Protected Sub gvDisplayUserResponse_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvDisplayUserResponse.RowCreated 

    If e.Row.RowType = DataControlRowType.DataRow Then 

     Dim myUserID As String = "13-zTest1RaffertyRichard0000" 
     Dim myRowNumLabel As Label = CType(e.Row.Cells(1).Controls(1), Label) 
     Dim myQuestionID As Guid = New Guid(gvDisplayUserResponse.DataKeys(e.Row.RowIndex).Value.ToString) 

     myRowNumLabel.Text = e.Row.RowIndex.ToString() + 1 

     Dim cxt As kaiDataContext = New kaiDataContext 

     Dim myUserInput = From ui In cxt.tblAssesseeResults 
         Where ui.assesseeUniqueID = myUserID And 
           ui.assesseeQuestionID = myQuestionID 
         Select ui.assesseeResponseScore 

     Dim mySliderValue As Integer = 0 

     For Each mui In myUserInput 
      mySliderValue = CType(mui, Integer) 
     Next 

     Dim csname As String = "userResponseSlider" 
     Dim cstype As Type = Me.GetType() 
     Dim cs As ClientScriptManager = Page.ClientScript 

     If (Not cs.IsClientScriptBlockRegistered(cstype, csname)) Then 
      Dim sb As New StringBuilder() 

      sb.Append("(function() {") 
      sb.Append("$('#slider').slider({") 
      sb.Append("value: ") 
      sb.AppendFormat("{0}", mySliderValue) 
      sb.Append(", min: 10, max: 90, step: 1") 
      sb.Append(" }); }); ") 
      cs.RegisterStartupScript(cstype, csname, sb.ToString(), True) 
     End If 
    End If 


End Sub 

回答

0

首先,在RegisterStartupScriptkey參數是唯一的,所以如果這個代碼正在呼籲多行,只有第一個腳本塊實際上將呈現給這一頁。

雖然我不認爲這是您的主要問題。打開你的javascript控制檯,查找錯誤,並查看頁面的源代碼,並確保你實際上有一個ID爲「滑塊」的div和2)客戶端腳本來呈現頁面上呈現的滑塊。