0
나는 다음과 같은 데이터로 ASP.NET의 GridView를했습니다 :GridView에서 열을 활성화하는 방법?
행이 3 열에서 값을 기준으로 OnRowDataBound 비활성화됩니다.
의 GridView :
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
onrowdatabound="GridView1_RowDataBound1">
<Columns>
<asp:TemplateField HeaderText="Column1">
<ItemTemplate>
<asp:HyperLink ID="hyperlink" runat="server" Text='<% #Eval("Dosage") %>' NavigateUrl='<% #Eval("Dosage") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column2">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<% #Eval("Drug") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column3">
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<% #Eval("Patient") %>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Column4">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<% #Eval("Date") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
RowDataBound :
protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label a = e.Row.FindControl("Label3") as Label;
if (a.Text == "Sam")
{
e.Row.Enabled = false;
e.Row.Cells[0].Enabled = true;
}
}
}
그러나, 나는, 컬럼은 항상 가능합니다, 1 열해야 항상 클릭 할 수있는 하이퍼 링크.
셀을 가져 와서 사용하도록 설정했지만 작동하지 않습니다.
친절하게도 위의 문제에 대한 해결 방법을 알려주십시오.
** 라벨 ** 컨트롤에 대해 사용 또는 사용 중지가 실제로 중요하지 않습니다. 현재 'e.Row.Enabled = false;'는 코드에서 쓸모가 없습니다. – Win
내 열 1은 레이블 대신 하이퍼 링크입니다. 행을 비활성화하면 하이퍼 링크를 클릭 할 수 없습니다. – sams5817