Текст заголовка GridView в asp.net с использованием asp:BoundField
Я хочу изменить текст заголовка сетки, используя дизайн.
<asp:BoundField HeaderText="">
я создал переменную в javascript и инициализировал защиту переменной по условию, а затем попытался вызвать эту переменную, как показано ниже:
<asp:BoundField HeaderText="Text Here" DataField="slno" >
здесь я использую строку "текст здесь", хранящуюся в одном имени переменной. и я хочу использовать эту переменную
Мой код:
<script type="text/javascript" language="javascript">
/// <summary>
/// TO ACCESS COOKIE VARIABLE
/// </summary>
var flag;
var ca = document.cookie.split('=');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ',') c = c.substring(1);
}
if (c != '' && c != null) {
flag = c;
}
else {
flag = 1;
}
//*********************************************
if (flag == 1) {
var name_lbl = "Hai";
}
else if (flag == 2) {
var name_lbl = "How are you?";
}
</script>
//------------------------------------------------
</asp:Content>
<form id="form1" runat="server">
</table>
<div style="overflow: auto; height: 99%;" id="divTable">
<table><tr><td>
<label for='field ID'> <b><input type="text" id="kilist_lbl" size="20" style="border: none; height:20px" readonly/></b> </label> <br />
</td></tr></table>
<asp:GridView ID="gvareadetails" runat="server"
CssClass="mGrid" AutoGenerateColumns="False">
<Columns>
<%-- here is the problem when assigning ID to headerText label --%>
<asp:BoundField HeaderText='sss' DataField="slno" >
<ItemStyle Width="5%" />
</asp:BoundField>
</Columns>
</asp:GridView>
</div>
</form>
<script type="text/javascript" language="javascript">
document.getElementById('sss').value = name_lbl;
</script>
</asp:Content>
У любого есть какие-либо предложения, как этого можно достичь..
2 ответа
Решение
Вместо js просто попробуйте код C#, чтобы получить значения из вида сетки.
например:
int name_lbl = gvareadetails.Columns[0][0];
Вот Columns[0][0]
дает первое значение первого столбца строки.
Код C# для получения значений из вида сетки:
string name_lbl;
protected void Page_Load(object sender, EventArgs e)
{
//---------------------------------------------
/// </summary>
/// /// <summary>
/// TO ACCESS COOKIE VARIABLE
/// </summary>
string b;
HttpCookie a = Request.Cookies["LangaugaeObj"];
if (a != null) b = a.Value; else b = "1";
if (b == "1")
{
name_lbl = "Hai";
}
else
{
name_lbl = "How are you";
}
//---------------------------------------------------
protected void Button1_Click(object sender, EventArgs e)
{
// here I set the variable name to the grid Header
gvareadetails.Columns[0].HeaderText = name_lbl;
Report report = new Report();
report.areaid = hidStatus.Value.ToString();
DataSet ds = report.getareawisedetails();
gvareadetails.DataSource = ds;
gvareadetails.DataBind();
ds.Dispose();
ds = null;
report = null;
}
Спасибо за Shaji SS за его предложение. Я надеюсь, что этот ответ поможет кому-то, кто ищет динамически установить текст заголовка в asp.net, используя asp:BoundField.