HiRumeValid,
You need to add else condition to remove the disabled attribute.
Check this example. Now please take its reference and correct your code.
HTML
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$("[id*=drpusing]").change(function () {
var row = $(this).closest("tr");
var value = $(this).val();
if (value == "P") {
row.find("[id*=txtpayitem]").attr("disabled", "true");
} else {
row.find("[id*=txtpayitem]").removeAttr("disabled");
}
});
});
</script>
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="S/N">
<ItemTemplate>
<span id="indxid" class="indxno" style="text-align: center">
<%# Container.DataItemIndex+1 %>
</span>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:TemplateField HeaderText="Using">
<ItemTemplate>
<asp:DropDownList runat="server" ID="drpusing">
<asp:ListItem Text="-- Select--"></asp:ListItem>
<asp:ListItem Text="Value" Value="V"></asp:ListItem>
<asp:ListItem Text="Percentage" Value="P"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Payitem to use to derive value">
<ItemTemplate>
<asp:TextBox runat="server" ID="txtpayitem"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
Namespaces
C#
using System.Data;
VB.Net
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Rows.Add("Mudasser Khan");
dt.Rows.Add("John Hammod");
dt.Rows.Add("Rober Mathew");
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim dt As DataTable = New DataTable()
dt.Columns.Add("Name")
dt.Rows.Add("Mudasser Khan")
dt.Rows.Add("John Hammod")
dt.Rows.Add("Rober Mathew")
Me.GridView1.DataSource = dt
Me.GridView1.DataBind()
End If
End Sub
Screenshot
