2013-08-05 2 views
-2

У меня есть два текстовых поля, одна кнопка и вид сетки.Как вставить значение текстового поля в gridview с помощью javascript

Что я хочу, просто, когда я нажимаю кнопку, значение из текстового поля будет вставляться в сетку.

Мне нужен javascript для этого b'cs Я новичок в javascript.

+0

добавить код и разметку у вас есть – vittore

+0

Также проверьте эту статью, вам не нужно «копировать» что-либо http://msdn.microsoft.com/en-us/library/ms972948.aspx – vittore

+0

И если бы вы могли , добавьте описание того, что работает и что не работает. Это поможет нам понять, какая часть кода может быть нарушена. – Trendy

ответ

0

Это то, что вам нужно, нет необходимости в дополнительной функции js, используйте CompareValidator. Шаблон поле должно имеют EditItemTemplate и некоторый контроль связан (<%# Bind(...) %>) на поле в источнике данных

<asp:TemplateField HeaderText="Units In Stock"> 
    <EditItemTemplate> 
     <asp:TextBox ID="editUnitsInStock" Runat="server" 
      Text='<%# Bind("UnitsInStock") %>' Columns="4"></asp:TextBox> 
     <asp:CompareValidator ID="CompareValidator2" Runat="server" ErrorMessage="You must provide a valid integer for Units In Stock." 
      ControlToValidate="editUnitsInStock" 
      Operator="DataTypeCheck" Type="Integer">*</asp:CompareValidator> 
       </EditItemTemplate> 
+0

извините, но я хочу, чтобы скрипт для хранения значения текстового поля в asp.net gridview ... я хочу хранить данные в стороне gridview, поэтому для этого мне нужен javascript. –

+0

Должно ли это продолжаться? если да, то вам действительно нужна серверная сторона, иначе GridView не будет помнить значение, которое вы просто взломали в нем. – vittore

0

Пожалуйста, обратитесь этим кодом. Это поможет вам.

<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript"> 
    function copyTextValue(bf) { 
       if(bf.checked) 
         var text1 = document.getElementById("Name1").value; 
       else 
         text1=''; 
       document.getElementById("Name2").value = text1; 
       document.getElementById("Name3").value=text1; 

       } 
     </script> 
</head> 
<body> 


     <input type="checkbox" name="check1" onchange="copyTextValue(this);"/> 
<input id="Name1"><input id="Name2"><input id="Name3"> 


</body> 
</html> 
+0

Извините, что я уже знаю это, но мне нужен скрипт для хранения значения текстового поля в asp.net gridview ... –

1

В минувшие выходные, помогая одному из моих друзей по его проекту, мне нужно было выполнить на уровне строк на стороне клиента, операции на asp.net GridView. Во-первых, я искал поиски чего-то похожего на «формулы в excel» для asp gridview. Когда мне не удалось найти что-то хорошее, я решил пойти с javascript для выполнения операции на стороне клиента в отдельных сетчатых строках.

Мой сценарий состоял из генерации счета-фактуры, где требовалось добавлять строки (по одному для каждого выбранного продукта) динамически, а затем выполнять некоторые вычисления, например, отображать общую сумму строк. При нажатии кнопки «Добавить» добавляется новая запись для элемента, выбранного в раскрывающемся списке (это делается из кода на стороне сервера). Здесь пользователь может вводить значения в любом из текстовых полей. И система должна обновить значения в текстовом поле столбца Total Excessible Value (см. Изображение ниже) соответственно.

Для этого я написал две простые функции javascript и назвал их onchange событием текстового поля. Ниже приведены вид сетки и код jQuery, которые я использовал.

(Нажмите, чтобы увеличить)

GridView, который я использовал, был ниже:

<asp:GridView ID="gdvInvoiceItems" runat="server" AutoGenerateColumns="False" ShowHeader="true" 
     OnRowCommand="gdvInvoiceItems_RowCommand"> 
     <EmptyDataTemplate> 
      No items added yet. 
     EmptyDataTemplate> 
     <Columns> 
      <asp:TemplateField HeaderText="S No."> 
       <ItemTemplate> 
        <%# Container.DataItemIndex + 1 %> 
        <asp:HiddenField ID="hdnItemId" runat="server" Value='<%# Eval("Id") %>' /> 
       ItemTemplate> 
      asp:TemplateField> 
      <asp:TemplateField HeaderText="Description of Goods" ItemStyle-CssClass="description"> 
       <ItemTemplate> 
        <asp:TextBox ID="txtDescription" runat="server" Text='<%# Eval("Description") %>' 
         CssClass="txtDescStyle">asp:TextBox> 
       ItemTemplate> 
      asp:TemplateField> 
      <asp:TemplateField HeaderText="Quantity(Net)" ItemStyle-CssClass="quantity"> 
       <ItemTemplate> 
        <asp:TextBox ID="txtQuantity" runat="server" Text='<%# Eval("Quantity") %>' onchange="javascript:Multiply(this, this.value)">asp:TextBox> 
       ItemTemplate> 
      asp:TemplateField> 
      <asp:TemplateField HeaderText="Value Per Unit" ItemStyle-CssClass="value"> 
       <ItemTemplate> 
        <asp:TextBox ID="txtValue" runat="server" Text='<%# Eval("PerUnitValue") %>' onchange="javascript:Multiply(this, this.value)">asp:TextBox> 
       ItemTemplate> 
      asp:TemplateField> 
      <asp:TemplateField HeaderText="Total Exesible Value" ItemStyle-CssClass="exesiblevalue"> 
       <ItemTemplate> 
        <asp:TextBox ID="txtTotalExeValue" runat="server" Text='<%# Eval("Total") %>' CssClass="TotalExeValue">asp:TextBox> 
       ItemTemplate> 
      asp:TemplateField> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:LinkButton ID="lnkBtnRemove" runat="server" Text="Remove" ItemStyle-CssClass="remove"> 
        asp:LinkButton> 
       ItemTemplate> 
      asp:TemplateField> 
     Columns> 
    asp:GridView> 

JavaScript код используется:

<script type="text/javascript"> 
     //This method is called when quantity/cost textbox looses focus with some change in content 
     function Multiply(element, val) 
     { 
      var otherElementName = ''; 
      var finalElementName = ''; 

      //id of calling element i.e, quantity/cost textbox 
      var elementName = element.id; 

     //get second element, i.e., get quantity if change is in cost and vice-versa 
      if(endsWith(elementName, "txtQuantity")) 
      { 
       otherElementName = elementName.replace("txtQuantity", "txtValue"); 
      } 
      else if(endsWith(elementName, "txtValue")) 
      { 
       otherElementName = elementName.replace("txtValue", "txtQuantity"); 
      }  
      var otherElement = document.getElementById(otherElementName); 

      //get textbox where final value is to be displayed 
     finalElementName = elementName.replace("txtValue", "txtTotalExeValue")   
      var finalElement = document.getElementById(finalElementName); 
      finalElement.value = otherElement.value * val; 
     } 

     //checks if given string ends with given suffix 
     function endsWith(str, suffix) { 
     return str.indexOf(suffix, str.length - suffix.length) !== -1; 
    } 

    script> 

Выделенные линии OnChange = "JavaScript: Multiply (это, это .value) "- это тот, который делает магию. Это событие onchange не приходит в intellisense, но оно работает.

Смежные вопросы