S. M. Ahasan Habib
ваша разметка должна немного измениться(комбинация одинарных и двойных кавычек). Внимательно следуйте следующей строке и узнайте, что вы пропустили.
<asp:CheckBox ID="chkSelect" onchange=<%# "javascript:checkUncheck('" + Eval("ContactName") + "')" %> Text='<%#Eval("ContactName") %>' runat="server" />
Разметка:
<asp:gridview runat="server" id="grdData" autogeneratecolumns="False" xmlns:asp="#unknown">
<columns>
<asp:boundfield runat="server" showheader="True" headertext="Id" datafield="Id" />
<asp:templatefield headertext="Select">
<ItemTemplate>
<asp:CheckBox ID="chkSelect" onchange=<%# "javascript:checkUncheck('" + Eval("ContactName") + "')" %> Text='<%#Eval("ContactName") %>' runat="server" />
</ItemTemplate>
</asp:templatefield>
</columns>
</asp:gridview>
модель данных:
public class Data
{
public long Id { get; set; }
public string ContactName { get; set; }
public static IEnumerable<data> GetDataList()
{
return new[] { new Data { Id = 1, ContactName = "Habib" }, new Data { Id = 2, ContactName = "Khorshed" }, new Data { Id = 3, ContactName = "Shojol" } };
}
}</data>
С фоновым кодом
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
LoadGrid();
}
private void LoadGrid()
{
IEnumerable<data> data = Data.GetDataList();
grdData.DataSource = data;
grdData.DataBind();
}</data>
с АСП .чистая флажок событие onChange, после чего не будет работать. Если вы видите рендер html
<span önchange="javascript:checkUncheck('Shojol')"><input id="MainContent_grdData_chkSelect_2" type="checkbox" name="ctl00$MainContent$grdData$ctl04$chkSelect" /><label for="MainContent_grdData_chkSelect_2">Shojol</label></span>
выше вы поймете, что он будет визуализировать span, а событие onchange будет перемещаться от флажка к span. В этом случае мое предложение заключается в том, что вы можете использовать событие onclick вместо onchange, и оно будет работать нормально.
Вы можете RND с этим, как вы можете создать 2 элемента управления на одной стороне сервера другой html и привязать javascript метод для обработчика событий onchange для обоих и увидеть результат.
<div>
<asp:checkbox id="chkTest" runat="server" onchange="javascript:checkUncheck('Good Morning');" text="Click Me" />
<input type="checkbox" id="chk3" onchange="javascript:checkUncheck('Good Morning');" value="Good Night"/>
</div>
<script type="text/javascript">
function checkUncheck(contactName) {
alert(contactName);
}
</script>